JQuery复选框对象引用

时间:2012-03-09 04:54:14

标签: jquery this

我有以下代码(可以)切换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');

                }
              });

在另一个函数中,我希望在取消选中另一个复选框(PhotoStyles)时取消选中一个特定的复选框(AerialView)。我不知道如何正确地用更具体的东西替换'this'参考。我有以下(不起作用):

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

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

                }

请注意,我确认if语句有效,将checked设置为false也可以。 “animate”,“removeClass”和“addClass”的视觉元素不起作用。

1 个答案:

答案 0 :(得分:0)

如果您有id复选框,则检查是否已选中的语法为:

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

在您的情况下,您没有使用正确的语法来检查复选框,而且您还得到了一个真实的'值。行。

现在,如果$('#AerialViewCheck')[0]是复选框元素,则在其自身上应用animate,addClass,removeClass。为什么要尝试申请$('#AerialViewCheck')?使用方式如下:

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