【发布时间】:2016-08-17 20:51:32
【问题描述】:
我有 jQuery 元素 popup 和 buttons,buttons 是 popup 的子元素。
buttons 包含<button> 元素,我想将点击事件附加到这些元素。
所以我编写了以下代码:
buttons.children("button").on("click", function() {
//I'm magic
}
但遗憾的是buttons的内容可以动态更改,按钮可以添加和删除:/
所以我通过写作解决了这个问题:
buttons.on("click", "button", function() {
//I'm magic
}
但buttons 本身可以从popup 中添加和删除。在buttons 被删除并添加回popup 之后,上面的代码不再起作用:/
下面的代码似乎可以解决它:
popup.on("click", "button", function() {
//I'm magic
}
但这也会在点击 <button> 内的 popup 但不在 buttons 内时触发。
如何仅当<button> 在buttons 内被点击时触发?
感谢您的帮助!
【问题讨论】:
-
无法阅读。请发布一个简单的 MCVE。
-
张贴您的 html 以便我们检查
-
请提供您目前拥有的html/js。谢谢
-
不需要任何html、js。这是一个关于 jquery 中事件委托的明确问题。如果它很复杂,请继续前进。
-
但是最好有 html 以便我们在定义事件委托时可以使用适当的选择器
标签: javascript jquery html event-delegation