2014-06-18 47 views
0

嘗試構建一些代碼以突出顯示錶格中的記錄,方法是按住Shift鍵開始選擇,然後向左(如果您是右手)鼠標單擊以結束選擇。如何取消綁定jQuery keydown(shift鍵)?

我已經使用了一個全局變量來停止mousedown事件中的選擇,並且代碼僅在按下shift鍵並立即釋放時纔有效。但是,如果在選擇結束時按住Shift鍵並釋放,則隨着鼠標按鈕再次被點擊,它會產生副作用。 (即按下一個確定,按住介紹副作用)

我有代碼綁定(不確定術語綁定這裏是正確的)keydown事件,而不是如何解除/在另一個事件 - mousedown中刪除它。

var C_MARKER_INIT_VAL  = "_INIT_"; 
var C_MAIN_MOUSE_BUTTON = 1;  // i.e. left button for the right handed person 


$(document).keydown(function(e) { 
    if (e.shiftKey) { 
    gBeginMarker = $("*:focus").attr('id'); 
    } 
}); 

我試圖在MouseDown事件如下刪除此:

$(document).mousedown(function(event) { 
    if (event.which===C_MAIN_MOUSE_BUTTON && gBeginMarker && gBeginMarker != C_MARKER_INIT_VAL) { 
    var e = event || window.event; 

      // do some stuff 


      // Re-initialize global variable to prevent this code block from firing again 
    gBeginMarker = C_MARKER_INIT_VAL; 
    } 
}); 

什麼是shift鍵之間的差異被壓一次,被壓得(比如幾秒鐘)?

感謝所有幫助去除shift鍵事件鼠標點擊後

回答

1
  1. 使用.onnamespace您的活動。即,$(document).on('keydown.toRemove', function(e){
  2. 解除事件與$(document).off('keydown.toRemove');。 (.off docs
相關問題