为什么jQuery .prop看起来不起作用?

时间:2013-03-22 21:35:33

标签: javascript jquery html checkbox

Sql Fiddle example

$('#myBox').click(function(e){
   e.preventDefault();
   e.stopPropagation();
   $('#myBox').prop("checked", !$('#myBox').prop("checked") );
});

我将此附加到一个复选框,以便检查切换由我的javascript而不是默认行为控制,而只是不起作用。我无法弄清楚为什么!

我这样做的原因:IE有一个双击过滤器,可以这么说,双击复选框只注册为单击。这恰好阻止人们快速切换复选框,这是我的应用程序所需的功能,奇怪的是。所以我只是取消了它的默认功能,并通过JavaScript / jQuery手动捕获点击并以这种方式切换,从而消除了“速度限制”。除了我不知道如何阻止点击从一开始就切换它,因此这个问题。

2 个答案:

答案 0 :(得分:0)

setTimeout(function() {
    $('#myBox').prop("checked", !$('#myBox').prop("checked") );
}, 1);

只需1毫秒的延迟计时器即可。

请参阅your jsFiddle, modified

答案 1 :(得分:0)

我猜你想在你的复选框改变时运行一些东西......

在这种情况下,您应该抓住更改事件:

$('#myBox').bind('change', function() {
    // Do checks here, if you don't want it to change, then deal with it then
});