Javascript 如何在IE8中禁用ondblclick?
因此,我已经尝试了以下选择的答案: 但在我这边,它不起作用。和往常一样,我怀疑它与IE8有关(因为我以前的很多问题都与IE8问题有关) 这就是我的按钮的外观,keyBtnEvent是一个改变div类的函数: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
函数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的问题。