Jquery单击功能仅工作两次

时间:2013-09-24 09:17:02

标签: javascript jquery html function onclick

我的jquery点击功能有一个奇怪的问题。假设发生的是用户点击链接'.selectlink'并在页面上勾选一个框。这工作得很好,再次点击它,它取消了盒子.....也没关系,再次点击链接,什么也没发生,点击它一些仍然没有任何反应,所以该功能似乎只有两个后工作点击然后停止工作,直到刷新页面。

$(document).on('click', '.selectlink', function () {
     var myId = $('#check_' + this.id);

     if ($(myId).is(':checked')) {
          $(myId).attr('checked', false);
     } else {
          $(myId).attr('checked', true);
     }

     countChecked();
});

3 个答案:

答案 0 :(得分:1)

问题出现是因为':checked'状态是根据DOM中的'checked'属性确定的,而不是'checked'属性的存在或值。有关属性与属性的更多信息,请参阅jquery文档:http://api.jquery.com/prop/

为了使其发挥作用(正如您所发现的),您已经这样做了:

var myId = $('#check_' + this.id);
if ($(myId).is(':checked')) {
    $(myId).prop('checked', false);
} else {
    $(myId).prop('checked', true);
}

答案 1 :(得分:0)

有多奇怪,我发现如果我使用道具而不是attrib它现在工作超过两次,不知道为什么?。

$(document).on('click', '.selectlink', function () {
     var myId = $('#check_' + this.id);
     if ($(myId).is(':checked')) {
         $(myId).prop('checked', false);
     }
     else {
        $(myId).prop('checked', true);
     }
     countChecked();
    });
});

答案 2 :(得分:0)

尝试

$(document).off('click')。on('click','。selectlink',function(){

取消绑定并绑定。