如何在 IE8 中禁用 ondblclick?
How do I disable ondblclick in IE8?
所以,我已经尝试过选择的答案:
How to disable ondblclick in JavaScript?
但就我而言,它不起作用。和往常一样,我怀疑它与 IE8 有关(因为我以前的很多问题都与 IE8 问题有关)。
这就是我的按钮的样子,keyBtnEvent 是一个改变 div:
的 class 的函数
function keyBtnEvent(key, id, event) {
//change class of object with id = 'id'
console.log(event + 'event of keyBtnEvent called');
}
<div id="2Key" class="key"
onmouseup="keyBtnEvent('2','2Key','up')"
onmousedown="keyBtnEvent('2','2Key','down')">
<button>2</button>
</div>
那么,如何在不使用 jquery 的情况下禁用 IE8 中的 ondblclick?
这是正确的 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
等)。 Here's why. 相反,您应该在专用脚本中完成所有 JavaScript 工作并使用 .addEventListener()
(或上面的 attachEvent()
方法适用于 IE 8 或更低版本)。
所以,我已经尝试过选择的答案:
How to disable ondblclick in JavaScript?
但就我而言,它不起作用。和往常一样,我怀疑它与 IE8 有关(因为我以前的很多问题都与 IE8 问题有关)。
这就是我的按钮的样子,keyBtnEvent 是一个改变 div:
的 class 的函数function keyBtnEvent(key, id, event) {
//change class of object with id = 'id'
console.log(event + 'event of keyBtnEvent called');
}
<div id="2Key" class="key"
onmouseup="keyBtnEvent('2','2Key','up')"
onmousedown="keyBtnEvent('2','2Key','down')">
<button>2</button>
</div>
那么,如何在不使用 jquery 的情况下禁用 IE8 中的 ondblclick?
这是正确的 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
等)。 Here's why. 相反,您应该在专用脚本中完成所有 JavaScript 工作并使用 .addEventListener()
(或上面的 attachEvent()
方法适用于 IE 8 或更低版本)。