在Internet Explorer(任何版本)中,如果您点击两次快速复选框,它只会更改一次。另一个浏览器不这样做。为什么Internet Explorer复选框接受双击但只更改状态一次?
这是“通过设计”还是一个非常奇怪的行为(bug)?
在Internet Explorer(任何版本)中,如果您点击两次快速复选框,它只会更改一次。另一个浏览器不这样做。为什么Internet Explorer复选框接受双击但只更改状态一次?
这是“通过设计”还是一个非常奇怪的行为(bug)?
这似乎是IE中的一个常见错误,不仅适用于复选框,而且还适用于一般的点击处理。看起来这将是固定在IE9平台预览4:
http://webbugtrack.blogspot.com/2008/01/bug-263-beware-of-doubleclick-in-ie.html
其实IE9已经发布了。 IE10也是如此。但看起来这篇文章谈论的是事件被错误地解雇,而不是你无法迅速检查和取消选中的事实。 – 2013-03-16 11:54:17
@VitorCanova:正确,但这些事件是复选框用来完成它的工作... – 2013-03-16 16:20:22
这不是一个错误......我走上了门。 – m4tm4t 2013-03-19 23:31:54
虽然我在很多不同的公司工作作为系统管理员,我常常看到使用DoubleClick作为默认操作与任何UI元素进行交互的人。他们了解Windows的第一件事就是doubleclick启动一个图标(快捷方式)。并且他们将这些知识应用到其他所有元素,无论它是实际是什么:链接,按钮,图标或复选框 =) 所以,我认为它是故意的,IE浏览器计数doubleclick为singleclick。
使用jQuery我固定这样的问题:
this.checkboxes = $('input[type="checkbox"]');
if (navigator.userAgent.match(/MSIE/i)){
this.checkboxes.dblclick(function() {
if($(this).prop('checked')) {
$(this).prop('checked', false);
} else {
$(this).prop('checked', true);
}
});
}
this.checkboxes.click(function(e) {
// do whatever a click should do
});
说明: 在Internet Explorer中双击时,事件被触发这样的:
双击时,我的点击事件中所需的动作发生了两次(就像它应该那样),但复选框没有改变状态两次。所以我简单地在双击时触发了已选中/未选中的状态。由于这会打破Firefox/Chrome /等的功能,我只在MSIE(Internet Explorer)用户代理中使用它。这样
通过上面的代码,事件和复选框态火/变化:
双击在所有浏览器,除了IE:
双击Internet Explorer中
复选框下面的代码为我工作:
<input type="checkbox" OnClick ="javascript:toggleGetSelected(this)">
var temp;
function toggleGetSelected(e){
if(e){
// Below is the if condition which handles the double click
if(e.checked==true && temp==e.value){
e.checked=false;
}
// ends double click handle
if(e.checked==true){
temp=e.value;
// your code here
}
else{
temp=null;
// your code here
}
}
}
它适合我 – 2017-12-13 09:49:33
早在一天,有一个“意外发现双击”选项埋在无论是IE或资源管理器的选项,可能是因为 – 2012-03-28 13:08:51
你知道,如果这个选项已经存在? – 2012-03-28 16:22:31
当前答案看起来不错...如果您需要解决方法或工作,请发布一些代码或您的目标是什么。你使用JQuery吗?双击有什么问题..? – 2013-03-19 19:43:16