Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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 如何在IE8中禁用ondblclick?_Javascript_Html_Css_Internet Explorer 8 - Fatal编程技术网

Javascript 如何在IE8中禁用ondblclick?

Javascript 如何在IE8中禁用ondblclick?,javascript,html,css,internet-explorer-8,Javascript,Html,Css,Internet Explorer 8,因此,我已经尝试了以下选择的答案: 但在我这边,它不起作用。和往常一样,我怀疑它与IE8有关(因为我以前的很多问题都与IE8问题有关) 这就是我的按钮的外观,keyBtnEvent是一个改变div类的函数: 函数keyBtnEvent(键、id、事件){ //更改id为'id'的对象的类 log(事件+‘调用了keyBtnEvent的事件’); } 2. 这是正确的IE 8方法: var key = document.getElementById('2Key') // Feature d

因此,我已经尝试了以下选择的答案:

但在我这边,它不起作用。和往常一样,我怀疑它与IE8有关(因为我以前的很多问题都与IE8问题有关)

这就是我的按钮的外观,keyBtnEvent是一个改变div类的函数:

函数keyBtnEvent(键、id、事件){
//更改id为'id'的对象的类
log(事件+‘调用了keyBtnEvent的事件’);
}

2.

这是正确的IE 8方法:

var key = document.getElementById('2Key')

// Feature detection for DOM Event Standard and IE 8 and less
if(window.addEventListener){
  // W3C DOM Event Standard
  key.addEventListener("dblclick", function(evt) { 
    evt.preventDefault();    // stop the event
    evt.stopPropagation();  // don't bubble the event
  });
} else if(window.attachEvent){
  // IE 8 or less
  key.attachEvent("ondblclick", function(evt) { 
    evt = evt || window.event;
    evt.returnValue = false;  // stop the event
    evt.cancelBubble = true;  // don't bubble the event
  });
}

另外,您不应该使用内联HTML事件属性(
onmouseover
onmouseout
,等等)相反,您应该在专用脚本中完成所有JavaScript工作,并使用
.addEventListener()
(或IE 8或更少版本的上述
attachEvent()
方法)。

请您的问题显示
keyBtnEvent()
函数。根据您显示的代码,它可能(可能)是
onmouseXYZ=“return-keyBtnEvent(…)”
(也就是说,从函数返回值,假设在您想要取消事件时它返回
false
),您是说我应该添加
ondblclick=“return-keyBtnEvent('2',2key',dblclick')”
,抱歉,我没有注意到您现有的事件不包括
ondblclick
。只需添加一个
ondblclick=“return false”
属性就可以了。(我通常不推荐内联事件属性,但因为您已经在其他事件中使用它们。)您能在这里清楚地说明您期望的是什么吗?即使禁用双击,仍会发生单击。这对我不起作用。。。我知道dblclick仍然没有被禁用,因为button类在dblclick上没有更改(当它应该更改时,即mousedown更改button类,但仅在第一次单击时更改),我在编辑之前发表了评论。所以,嗯。。。是的,让我先试试。我不知道你说的按钮类在dblclick上没有改变是什么意思——这就是全部要点——禁用双击事件。这是一把带有模拟
keyBtnEvent
功能的小提琴@RobG IE 8不支持
.addEventListener()
。直到IE 9才添加它。而且,使用
.addEventListener()
对调用的对象进行测试当然不是一个坏主意,但这并不重要,因为它是全面实现的,而不是逐个对象实现的。请参阅下面的兼容性:好了,加载了错误的版本。;-)但我也认为addEventListener在IE8中得到了支持,我想确认偏差应该是值得信任的。无论如何,这不是OP的问题。