我的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();
});
答案 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(){
取消绑定并绑定。