2013-02-25 5 views
-1

Как я могу это сделать? Это не работает, никаких результатов, никакого эффекта и ошибок.Изменить стиль, если флажок установлен

$('input[type=checkbox]').each(function() 
    { 
      if($(this).attr("checked") === true){ 
      $('.hoverbox .a').css('text-transform', 'uppercase'); 
      } 
      else 
      { 
      $('.hoverbox .a').css('text-transform', 'lowercase'); 
      } 
    }); 
+0

Необходимо точно указать, что именно вы пытаетесь выполнить. – Blazemonger

+0

НЕ изменяйте свой первоначальный вопрос на редактирование. Отправьте новый вопрос, если у вас возникла новая проблема. – Blazemonger

+0

Я этого не делал, его та же проблема. – pleaseDeleteMe

ответ

4

Вы, вероятно, нужно обработчик события:

$('input[type=checkbox]').on('change',function(e) { 
    // do stuff 
}); 

http://api.jquery.com/on

Или, возможно (это трудно для меня, чтобы понять ваши намерения) вам нужно использовать .prop() вместо .attr():

if ($(this).prop('checked')) { 
    // do something 
} else { 
    // do something else 
} 

обновление: Собираем все вместе:

$('input[type=checkbox]').on('change',function(e) { 
    if ($(this).prop('checked')) { 
     $('.hoverbox .a').css('text-transform', 'uppercase'); 
    } else { 
     $('.hoverbox .a').css('text-transform', 'lowercase'); 
    }; 
}); 

Хотя добавление пользовательского класса и toggling it бы сэкономить немного хлопот:

$('input[type=checkbox]').on('change',function(e) { 
    $('.hoverbox .a').toggleClass('uppercase'); 
}); 

CSS:

.hoverbox .a { 
    text-transform: lowercase; 
} 
.hoverbox .a.uppercase { 
    text-transform: uppercase; 
} 
+0

Я * думаю * его вопрос касается изменения стиля, а не обработки события. – BenM

+0

@BenM Kinda трудно сказать. – Blazemonger

+0

За исключением комментариев в его образце кода;) – BenM

2

Почему наклоняю вы используете CSS? Зачем тратить javascript?

input[type=checkbox]:checked + div { 
    text-decoration:underline; 
} 
Смежные вопросы