所以,我已经尝试了这个选定的答案:
How to disable ondblclick in JavaScript?
但是在我看来它不起作用。按照惯例,我怀疑它与IE8有关(因为我之前的很多问题都与IE8问题有关)。
这是我的按钮的样子,keyBtnEvent是一个改变div类的函数:
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?
答案 0 :(得分:0)
这是正确的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或更低版本)。