如何在IE8中禁用ondblclick?

时间:2017-05-30 03:16:49

标签: javascript html css internet-explorer-8

所以,我已经尝试了这个选定的答案:

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?

1 个答案:

答案 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事件属性(onmouseoveronmouseout等)。 Here's why. 相反,您应该在专用脚本中执行所有JavaScript工作,并使用.addEventListener()(或上述attachEvent()方法用于IE 8或更低版本)。