2016-03-16 62 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 =輔助功能,然後是自定義按鈕的更多位標誌值。