2013-08-22 62 views
0

我正在使用Twitter引導「TimePicker」小部件。當「.keydown」事件被觸發時,這個小部件具有增加/減少時間的行爲。防止jQuery小部件事件

我需要阻止這種默認行爲。我怎麼能做到這一點?

目前,我試圖攔截,直接輸入HTML元素上塊的事件。我看到.keydown事件被攔截和阻止,但TimePicker .keydown事件仍是起火:

$('#timeInput').keydown(function (e) { 
     var keyCode = e.keyCode || e.which, 
      arrow = { up: 38, down: 40 }; 

     switch (keyCode) { 
      case arrow.up: 
       window.debug.info("Key Up prevented"); 
       event.preventDefault(); 
       break; 
      case arrow.down: 
       window.debug.info("Key Down prevented"); 
       event.preventDefault(); 
       break; 
     } 
    }); 

我可以覆蓋「TimePicker」控制默認行爲?

回答

2

您可以刪除的keydown行爲隨時做:

$('#timeInput').unbind('keydown'); 

或者在小部件初始化之後:

$('#timeInput').timepicker(options).unbind('keydown'); 
+1

更好的答案。上投票。 – melancia

+0

其實我不想禁用「keydown」事件,但我需要重寫widgets默認的「keydown」行爲。 – AlbertasA

0

當你發送的event命名e,只是改變這一點:

event.preventDefault(); 

到:

e.preventDefault();