Ссылка на объект флажка JQuery - PullRequest
1 голос
/ 09 марта 2012

У меня есть следующий код (который работает) для переключения флажка стиля iPhone:

            $('.iphone-style').live('click', function() {

                checkboxID      = '#' + $(this).attr('rel');

                if($(checkboxID)[0].checked == false) {
                    $(this).animate({backgroundPosition: '0% 100%'});

                    $(checkboxID)[0].checked = true;
                    $(this).removeClass('off').addClass('on');

                } else {

                    $(this).animate({backgroundPosition: '100% 0%'});

                    $(checkboxID)[0].checked = false;
                    $(this).removeClass('on').addClass('off');

                }
              });

В другой функции я бы хотел, чтобы определенный флажок (AerialView) был снят, когда другой флажок (PhotoStyles) не проверено.Я не знаю, как правильно заменить ссылку «это» чем-то более конкретным.У меня есть следующее (что не работает):

                if($('#PhotoStylesCheck')[0].checked == false) {

                    $('#AerialViewCheck').animate({backgroundPosition: '100% 0%'});
                    $('#AerialViewCheck')[0].checked = false;
                    $('#AerialViewCheck').removeClass('on').addClass('off');

                }

Обратите внимание, что я подтвердил, что оператор if работает, и установка отмеченного на false также работает.Визуальные элементы «animate», «removeClass» и «addClass» не работают.

1 Ответ

0 голосов
/ 09 марта 2012

Если у вас установлен флажок id, то синтаксис для проверки, установлен он или нет:

if($('#' + id).is(":checked")) {
   // it is checked
}
else {
   // it is not checked
}

В вашем случае вы не используете правильный синтаксис для проверки флажка, а также вы получаете «истинное» значение. OK.

Теперь, если $('#AerialViewCheck')[0] является элементом флажка, примените к нему animate, addClass, removeClass. Почему вы пытаетесь подать заявку на $('#AerialViewCheck')? Используйте как это:

$('#AerialViewCheck')[0].animate({backgroundPosition: '100% 0%'});
$('#AerialViewCheck')[0].removeClass('on').addClass('off');
...