2016-12-20 44 views
0

我有綁定到文檔的事件處理程序。它應該處理,比如空格鍵擊中。 而且我有一些輸入,比如錨點或按鈕。如何避免jQuery處理程序依賴於activeElement?

當錨或按鈕都集中(這體現在document.activeElement),我的處理程序綁定到文件(或窗口)不會被觸發了!

爲什麼?我怎麼能確保,綁定到文檔的處理程序會觸發,而不管當前關注的元素是什麼?

  myapp.directive('myKeyDown', ['$document', ($document): angular.IDirective => { 
return { 
    restrict: 'A', 
    link: ($scope, $element, $attrs) => { 

     $document.bind("keydown",event => { 
      console.log('keydown', event.which); 
     }); 

    } 
}; 

}]);

+0

你可以發佈你試過的代碼嗎? – Aruna

+0

添加代碼。事實上,問題更深入。我使用angular-bootstrap-select插件。它依賴於引導選擇。它的行爲是這樣的,在用鍵盤選擇某個選項並打空間之後,焦點仍然在Anchor上。 –

+0

問題是我不知道在哪裏觸發「blur」來重置activeElement。第三方代碼非常深入。或者我應該獨立於activeElement。我原來的問題是關於它。 –

回答

0

嘗試使用

event.stopPropagation(); 

後的keydown功能的所有代碼。