Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery.prop看起来不起作用?_Javascript_Jquery_Html_Checkbox - Fatal编程技术网

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

Javascript 为什么jQuery.prop看起来不起作用?,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我将其附加到一个复选框中,这样复选框切换由我的javascript控制,而不是由默认行为控制,它就是不起作用。我不明白为什么 我这样做的原因是:可以说IE有一个双击过滤器,所以双击复选框只注册为一次单击。奇怪的是,这恰好阻止了人们快速切换复选框,而这正是我的应用程序所需要的功能。所以我只是取消了它的默认功能,用JavaScript/jQuery手动捕捉点击,并以这种方式切换,从而消除了“速度限制”。除了我不知道如何阻止点击从一开始就切换它,因此这个问题 setTimeout(function()

我将其附加到一个复选框中,这样复选框切换由我的javascript控制,而不是由默认行为控制,它就是不起作用。我不明白为什么

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

setTimeout(function() {
    $('#myBox').prop("checked", !$('#myBox').prop("checked") );
}, 1);
只需要1毫秒的延迟计时器


请参阅。

我猜当您的复选框更改时,您希望运行某些内容

在这种情况下,您应该捕获更改事件:

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

为什么要阻止默认操作并自己切换?请参阅此问题下的注释:确定。在这种情况下,您可能希望从其他元素中切换该复选框,这对于您的示例更为实用。如果您解释了您面临的问题,您可能会得到更好的答案。例如,如果您阻止默认操作只是为了在切换之前执行您自己的验证,那么您可以添加验证检查,如果验证检查失败,请调用preventDefault。@Fabricio Matté我讨厌填鸭式喂食的一个原因(也称为“手持”)它干扰了我作为一个专家用户想要做的事情,就像Aerovistae在这里发现的一样。我讨厌Word选择整个单词而不尊重我的选择点,或者选择单词后面的空格,或者段落标记,或者做十几件我不想让它做的蠢事。或者当Word/Excel将粘贴的HTML转换为呈现的HTML时。。。啊!“牵手”变成了“魔术师邪恶的干涉”。这究竟是为什么解决了这个问题?为什么是一个完全不同的问题。尝试在此处搜索。@Aero,因为它将操作插入等待发生的异步事件的“队列”中,并允许当前函数退出作用域。基本上,
单击
事件处理代码必须退出才能自由更改属性。。。尽管为什么,我也不确定。@BradM我会接受你的答案,因为它恰好是正确的,但作为记录,当人们要求更多地理解答案时,告诉他们“去寻找他们的问题”是愚蠢的。我有一千个代表,不是5个,我知道如何使用搜索,我确实使用了搜索,但这次它没有告诉我我需要什么。再次感谢你,没有什么。非常感谢ErikE,他的解释给了我解决整个问题的洞察力,所有这些都没有发布在这里。什么都不用谢?哈哈,我解决了你的问题。你不能期望对你提出的每一个问题都有一个全面的、非常详细的回答。我不知道它为什么有效,因此我建议在这里搜索它。
$('#myBox').bind('change', function() {
    // Do checks here, if you don't want it to change, then deal with it then
});