1.我无法理解if()中的条件,那么event.button是什么意思?2。 2 | 6 | 4 | 7在正则表达式中的含义是什么?数字是否与even.button有一些特殊的联系?有人帮我吗?谢谢!
eleLink[index].onmouseup = function(event) {
event = event || window.event;
var target = this;
if (/^2|6|4|7$/.test(event.button)) {
target.style.visibility = "hidden";
setTimeout(function() { target.style.visibility = "visible";}, 16);
}
};
答案 0 :(得分:1)
在鼠标事件中,button
是与事件相关的按钮。 /^2|6|4|7$/.test(event.button)
会将event.button
强制转换为字符串,然后针对该正则表达式测试该字符串。表达式可能用于测试按钮是2,6,4或7.它没有这样做,因为替换不适用于作者的思维方式他们做到了;相反,它测试按钮号,转换为字符串,以 2开头,包含6或4,或以结尾。为了获得交替,作者可能意味着,他们需要/^(?:2|6|4|7)$/
。
但是,代码并没有多大意义。 MouseEvent#button
被定义为具有值0,1或2,以指示哪个按钮改变了状态:0表示主(通常是左)按钮,1表示辅助(中间或类似)按钮,2表示二级(通常是右侧)按钮。作者可能一直在处理使用非标准内容的浏览器,或者可能将button
与MouseEvent#buttons
(复数)混淆,后者是当前按下的按钮的位掩码:0 =无,1 =主要,2 =次要,4 =辅助,然后是自定义按钮的更多位标记值。