问题标签 [event-delegation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
732 浏览

javascript - 点击事件后冒泡 jQuery .delegate() 或 .live() 事件

我尝试了很多不同的可能性来实现我认为应该是简单的代码执行。我正在通过.load(). 加载的项目之一是一个带有日期的输入文本框。当我点击输入框时,我想加载 jdpicker(一个插件 datepicker)。由于 and 的行为.live().delegate()即使我分别使用.die()or .undelegate(),我也无法让弹出日期选择器正常运行。它要么弹出,允许我单击窗口中的一个对象,然后立即关闭(我无法在不关闭窗口的情况下浏览数月、数年),或者弹出窗口并且每次后续单击都会重新执行生成多个实例的代码的日期选择器。

我尝试了 , 的不同组合.live().delegate().one()没有运气。我已经在主窗口中测试了日期选择器,并且知道它在那里工作正常。我可以发布代码,但不确定我所做的十种不同尝试中的哪一种是最好的例子。我可以展示我最近的尝试。

有没有人有一个合适的例子?谢谢!


更新

我已将代码编辑为如下所示:

这取决于成为完整的答案。日期选择器不再调用多个实例,这很好,但我仍然无法导航它的控件(月、年选择)。如果我点击下个月,它将加载并关闭。下次我点击它时,它会在下个月重新打开。所以,它确实有效,但肯定是不可取的。有什么建议么?

0 投票
1 回答
2055 浏览

jquery - 在事件捕获阶段绑定 jQuery 处理程序(不是事件冒泡)

我希望以类似于quirksmode上建议的方式在模糊/焦点事件上实现事件委托。正如 TFA 中所解释的,模糊和焦点事件不会冒泡,因此您不能在冒泡阶段对它们使用事件委托,但您可以在捕获阶段抓住它们(伙计,javascript 事件很奇怪)。

无论如何,据我所知,jQuery 事件都适用于冒泡阶段,或者至少那是我一直使用它们的地方。我在 jQuery 文档中看不到任何关于这种或另一种方式的信息,默认情况下使用类似 $('#foo').blur(blurHandler) 的东西似乎无法捕捉到它。

我宁愿坚持使用 jQuery 来保持一致性;有什么办法吗?

0 投票
2 回答
787 浏览

jquery - 事件完成后jquery取消委托点击事件

我有一个点击事件,可以将一些 AJAX 内容动画到页面上。

一旦显示此内容并且用户单击激活该过程的相同链接,我现在想要反转该过程并关闭当前打开的飞出内容。

当前打开的飞出通过单击“关闭”链接或单击序列中的另一个飞出链接来关闭。如果用户单击当前飞出链接,那么我希望当前飞出关闭。

0 投票
1 回答
423 浏览

javascript - 事件委托需要多少元素才能变得有价值?

阅读另一个关于 jQuery 性能的 Stack Overflow 问题后,我开始思考何时值得使用事件委托而不是单独绑定到元素。我主要考虑的是 jQuery,但我想它可能适用于一般的 Javascript。

事件委托有两个主要目的:

  1. 允许处理程序处理尚未创建/插入到 DOM 中的元素。
  2. 将一个函数绑定到一个共同的祖先元素而不是多个兄弟元素

我的问题是关于其中的第二个。一般的答案可能是“这取决于具体情况”,但我想知道是否有经验法则或基准测试方法来测试这一点。

所以,问题是:在事件委托的性能收益超过性能成本之前,您需要多少元素?

0 投票
1 回答
194 浏览

iphone - iPhone代表团

嗨,我正在使用以下方法来提升键盘,我有许多视图控制器也可以使用它,但我尝试委派它失败了。我绝对不想将它插入到每个视图控制器中。如果有任何想法将不胜感激

} - (void)viewWillDisappear:(BOOL)animated {

}

0 投票
1 回答
1176 浏览

jquery - 使用 jQuery 1.3.2 进行事件委托

我现在一直在使用 jQuery 1.3.2,而且我才刚刚开始理解事件委托。但我似乎无法让任何类型的事件委托来处理这段代码。我有一个带有“聊天”类的 ul,当悬停在其中一个 li 上时,它应该创建一个新的跨度,然后滑出,然后在鼠标离开 li 时滑回。

此代码有效,但我想使用事件委托:

有人可以告诉我如何实现相同的结果,但使用事件委托?谢谢。

0 投票
3 回答
159 浏览

jquery-selectors - delegate() 和 live() 方法的背后是什么?

jQuery的背后delegate()live()方法是什么让他们能够处理页面中当前和未来的元素?

0 投票
1 回答
80 浏览

java - 事件处理思路

我有两个从 JPanels 扩展的类,两个面板都有按钮,单击它们时执行常见活动。实现这一目标的最佳方法是什么?事件委托是否进入这里?就像将控件传递给另一个类的处理程序?(我假设这就是委托,如果我没记错的话)(如果委托合适,请提供一些好的学习资源)。我也想过有一个通用的静态方法,每个类 actionPerformed 都可以调用它!或者有没有其他更好的方法?

0 投票
1 回答
750 浏览

android - Android列表点击事件委托

我有一个使用数据库来显示一些数据的列表。用户可以对每个列表项执行多项操作,而不是实现用户使用长按来显示可能操作列表的上下文菜单,我想为每个项目添加按钮,以便用户只需点击按钮并执行操作。列表可能很大,并且为每个列表项的每个按钮附加一个侦听器是多余的,所以我想做 Javascript 程序员对事件冒泡所做的事情,即将单个处理程序附加到像整个列表这样的顶级元素并让点击事件冒泡到它。我该怎么做呢?

0 投票
5 回答
680 浏览

javascript - jQuery.live 和 jQuery.delegate 之间的区别

我已经阅读了一些关于为什么不使用 jQuery.live() 的帖子,我想检查一下我是否明白了:) 当我打电话时$("body").delegate('element','click', function);

是一样的$(element).live('click', function)吗?在正常行为的情况下..根据帖子,有一些 stopPropagation 和性能好处,但主要区别是每次都绑定到 body 元素,而委托可以绑定到另一个?