jQuery-1.8.0触发checkbox表单click事件的一个坑及解决方法

在页面引用了jQuery-1.8.0,给checkbox表单添加click事件:

<input type="checkbox"/>
<script type="text/javascript">
    $(":checkbox").click(function(){
        alert($(this).is(":checked"));
    });            
</script>

手动点击checkbox触发click事件一切正常,改用jQuery触发click事件就不正常了:

setInterval("$(':checkbox').click();", 2000);

页面总是先alert然后checkbox状态才改变,顺序反了,表现很怪异:明明alert显示的是false但checkbox却是选中状态,正常应该先checkbox状态变为选中然后alert显示true才对,查了下原因:

引用内容 引用内容
jQuery低版本在模拟点击时,首先触发click回调函数,回调函数执行完后再去修改checkbox的状态。

最终解决方法:

改用change事件升级jQuery到1.9.0(含)以上版本 都可解决!!!

评论: 0 | 引用: 0 | 查看次数: 1523
发表评论
登录后再发表评论!