2016-03-16 41 views
-1

1.我无法理解if()中的条件,那么event.button是什么意思? 2 | 6 | 4 | 7在正则表达式中意味着什么?数字与even.button有什么特别的联系?任何人都可以帮我吗?谢谢!无法理解测试(event.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);    
      }   
     }; 
+1

@胡说:MDN页面被误认为,-1不是有效值,因为'button'只涉及按钮改变状态的事件。 MDN不是事件的文档,它是一个元网站(通常很好)。 [按钮的规格在这里](https://www.w3.org/TR/uievents/#widl-MouseEvent-button)。另外,FWIW,那个正则表达式不会做你所描述的(以及作者的意图),这些改变并不适用作者似乎已经假设的方式(详见我的回答)。 –

+0

删除我的评论。 – hallucinations

回答

1

上的鼠标事件,button是已与事件相关的按钮。 /^2|6|4|7$/.test(event.button)将强制event.button为一个字符串,然后根据该正则表达式测试该字符串。表达式是可能是意思是测试按钮是2,6,4或7.它不这样做,因为这些变化不适用作者认为他们做的方式;相反,它测试的按钮数量是否转换为字符串,开始与 2,包含6个或4个,或 7.结束时获取的交替笔者大概就是这个意思,他们会需要/^(?:2|6|4|7)$/。尽管如此,代码并没有多大意义。 MouseEvent#button被定义为具有值0,1或2以指示哪个按钮改变状态:主(通常是左)按钮为0,辅助(中等或类似)按钮为1,以及次为2(通常是右)按钮。作者可能一直在处理浏览器做非标准的事情,或者可能会混淆buttonMouseEvent#buttons(复数),这是当前正在关闭的按钮的位掩码:0 =无,1 =主要,2 =次要,4 =辅助功能,然后是自定义按钮的更多位标志值。