【问题标题】:Using DOCUMENT.OF KEYDOWN event breaking other keydown events使用 DOCUMENT.OF KEYDOWN 事件打破其他 keydown 事件
【发布时间】:2018-10-12 11:46:37
【问题描述】:

我想在 documnet 中进行按键按下事件。所以我所做的就像在文档中添加了一个按键事件。

     self.cacheDom.$document.off('keydown').on('keydown', function (e) { 

   // my function with a scroll trigger if condition is satisfied 
 });

由于此代码,我的另一个 keydown 事件无法正常工作。我像这样绑定那个事件

self.cacheDom.$document.off('keydown').on('keydown', function (e) {
// my another function
});

如果我从第一个事件中删除keydown,则第二个函数将起作用,否则它永远不会起作用。但我无法删除keydown,因为它会在keydown 之后产生其他问题,如多个触发器或滚动事件不起作用。所以有什么办法可以解决这个问题。

【问题讨论】:

  • off("foo") 将删除附加到具有该名称的该元素的每个事件侦听器。它不知道您要删除什么,所以它会删除所有内容。

标签: javascript jquery node.js


【解决方案1】:

您必须在第一个函数完成后再次绑定 keydown 事件处理程序,因为您已经解除绑定所有与第二个事件处理程序相同的 keydown 事件。

  self.cacheDom.$document.off('keydown').on('keydown',firstHandler);
  self.cacheDom.$document.off('keydown').on('keydown',firstHandler);


   var firstHandler=function(){
     //my function with a scroll trigger if condition is satisfied 
         self.cacheDom.$document.on('keydown',secondhandler)
    }
   var secondHandler=function(){
     // my another function
         self.cacheDom.$document.on('keydown',firstHandler)
    }

请让我通知您不适合。

【讨论】:

  • @ManuPadmanabhan 你能展示更多你正在做的代码吗?这将有助于了解您的具体情况
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 2016-03-18
  • 2014-06-12
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多