Internet explorer 为什么Internet Explorer复选框接受双击但只更改一次状态?
在Internet Explorer(任何版本)中,如果您单击两次快速复选框,它只会更改一次。其他浏览器不这样做Internet explorer 为什么Internet Explorer复选框接受双击但只更改一次状态?,internet-explorer,Internet Explorer,在Internet Explorer(任何版本)中,如果您单击两次快速复选框,它只会更改一次。其他浏览器不这样做 这是“按设计”还是一个非常奇怪的行为(bug)?这似乎是IE中的一个常见bug,它不仅适用于复选框,还适用于一般的点击处理。看起来它将在IE9平台预览4中修复: 当我在许多不同的公司担任系统管理员时,我经常看到人们使用双击作为默认操作来与任何UI元素交互。关于Windows,他们学到的第一件事是双击会启动一个图标(快捷方式)。他们将这些知识应用到其他所有元素中,不管它们实际上是什么:
这是“按设计”还是一个非常奇怪的行为(bug)?这似乎是IE中的一个常见bug,它不仅适用于复选框,还适用于一般的点击处理。看起来它将在IE9平台预览4中修复:
当我在许多不同的公司担任系统管理员时,我经常看到人们使用双击作为默认操作来与任何UI元素交互。关于Windows,他们学到的第一件事是双击会启动一个图标(快捷方式)。他们将这些知识应用到其他所有元素中,不管它们实际上是什么:链接、按钮、图标或复选框 所以,我想这是故意的,IE将双击计算为单次点击。解决方法/解决方案 使用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中双击时,将按如下方式触发事件:
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
});
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
});
在除IE外的所有浏览器中双击:
以下代码适用于我:
<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
}
}
}
无功温度;
功能切换GetSelected(e){
如果(e){
//下面是处理双击的if条件
如果(e.checked==true&&temp==e.value){
e、 选中=错误;
}
//结束双击控制柄
如果(e.checked==true){
温度=e值;
//你的代码在这里
}
否则{
温度=零;
//你的代码在这里
}
}
}
以前,IE或explorer选项中都有一个“检测意外双击”选项,你知道这个选项是否已经存在吗?目前的答案看起来不错。。。如果你需要一个变通方法或解决方案,请发布一些代码或你的目标是什么。您使用JQuery吗?双击有什么问题吗?只是好奇而已。我真的期待一些关于这种行为的“官方”消息来源。我仍然希望它会出现,但我对科伦巴的回答有些满意。如果赏金期限到期,他将获胜。我想澄清一下,我从来没有提到这个问题是一个开发问题。这只是一个关于浏览器行为的问题实际上IE9已经发布了。我也是。但这篇文章似乎是在讨论错误触发的事件,而不是您不能快速选中和取消选中的事实。@VitorCanova:正确,但这些事件是复选框用来进行切换的。。。