我在动态添加元素到页面时遇到了必要的实时事件问题。Jquery“live”事件没有触发
定期点击事件正常工作。我想知道为什么现场点击事件失败。在JSFiddle中设置的演示中有说明。也许有人可以向我解释为什么会发生这种情况。
演示: http://jsfiddle.net/MezfS/2/
感谢您的时间。
我在动态添加元素到页面时遇到了必要的实时事件问题。Jquery“live”事件没有触发
定期点击事件正常工作。我想知道为什么现场点击事件失败。在JSFiddle中设置的演示中有说明。也许有人可以向我解释为什么会发生这种情况。
演示: http://jsfiddle.net/MezfS/2/
感谢您的时间。
与委托,并允许click事件泡尽可能的锚固定它:
$('#pui-tabs a').delegate('.tab-close', 'click', function(e) {
tabselector.tabs('remove', tabselector.tabs('option', 'selected'));
});
.live
依靠事件一直冒泡到文件,并且你停止你的处理程序的立即传播,从而停止它的工作。试试这个:
$('li[id=^="tab"]').delegate(".tab-close", "click", function(e) {
e.stopImmediatePropagation();
tabselector.tabs('remove', tabselector.tabs('option', 'selected'));
});
我已经在我的帖子中的JSFiddle演示中尝试过你的例子,但它不起作用。问题在于现场活动甚至没有被解雇。 – HGPB
“活”事件的行为与普通事件处理程序的行为不同。绑定实时事件时,会将事件处理程序附加到页面中最顶层的元素之一(例如body或document)。因为当你点击页面上的任何地方时,你也点击了正文,事件就会冒泡。例如,您点击包含在正文中的div中的链接,将为链接触发事件,为div触发事件,然后触发正文。
当事件到达主体时,“活动”事件处理程序会查看它,并且如果点击来源与您的选择器相匹配,它将触发您的功能。
除非链接上的处理程序之一或div阻止事件传播。在这种情况下,事件就会停止,不会冒泡,永远不会到达“现场”处理程序。
我想,jQuery UI在选项卡上放置一个处理程序,以捕获点击,并且该处理程序实际上是停止传播,使“活”处理程序无用。
为我工作。 :/ –
Mully你可以发布什么适合你。更新上面的演示并发布你的链接 - 谢谢。 – HGPB