2

如何检测 mootools 1.4.5 中是否有中键?

我知道这可以在常规 JS 中完成,但我无法让它在 mootools 中工作。

$('someLink').addEvent('click', function(e){
     if(e.button == 1){ // <-- .button doesn't exist in mootools. .which doesn't either
          e.stop();
          // Does some things
     }          
});
4

1 回答 1

2

MooTools 使用addEventListenerattachEvent取决于浏览器:

  • addEventListener用于所有现代浏览器和 IE9+
  • attachEvent用于旧 IE < 9

但是 MooTools 将事件数据包装到自定义规范化对象中,该对象对于所有浏览器具有相同的结构和值。不幸的是,它不处理button财产,但有可能获得它的价值。

您可以从 MooTools 事件对象的属性中获取原始事件数据event,但该数据可能因浏览器而异。Fee.button属性没有“标准化”,在旧的 IE 中,它的值可能与其他浏览器不同。

因此,您使用的代码addEvent将如下所示:

$('someLink').addEvent('mousedown', function(e){
    alert(e.event.button);       
});

(注意:我正在使用mousedown事件,因为当前版本的 Firefox 浏览器不会click为中间按钮触发事件)

在这里工作小提琴:http: //jsfiddle.net/hjsAj/

于 2013-09-03T08:45:39.160 回答