为什么。点击()和(“点击”)上的引导折叠按钮表现不同?
我想要一个click事件添加到自举按钮会做一些东西,然后通过返回false刷新事件。这意味着我不希望自动发生的引导效应完全发生。我将根据一些条件,在点击事件中以编程方式控制此内容。这意味着我需要在完成它之后刷新事件,以便在点击时发生的引导程序崩溃永远不会发生。为什么。点击()和(“点击”)上的引导折叠按钮表现不同?
我的问题是以下。如果我使用$(“my-button”),请单击(...);这会在崩溃崩溃之前捕捉到事件,并且在完成我想要的事情后,我可以冲洗事件。
不过,我需要使用的( “点击”,...);因为我需要这个事件发生与dinamically添加按钮。
我的问题是,在( “点击”,...);不会像.click(...)那样工作,当它捕捉到事件时,隐藏的div已经崩溃了,而我不想要。
我做了一个简单的例子来说明我的问题:https://jsfiddle.net/vo1npqdx/368/。
$(document).ready(function() {
$("#collapse-button").click(function() {
debugger;
//Do my stuff
return false; // successfully prevents bootstrap animation.
});
$(document).on("click", "#collapse-button", function() {
debugger;
//Do my stuff
return false; // doesn't prevent animation
});
// These catch the click event at different times!
});
有没有可能的解决方法来解决这种情况?
嗯,你很幸运,因为它看起来像bootstrap使用文档来捕捉事件,这意味着你可以在它之前捕捉它,例如使用body
元素,但最好将它靠近元素事件被触发,例如。在一个不会改变的包装上。
$("#wrapperthatwontchange").on("click", "#collapse-button", function() {
return false;
});
非常感谢,完美的工作:) –
不客气。 ,我忘了调整你的评论在分叉小提琴;) – yezzz
的差异是因为后者是一个委托的事件处理程序,这意味着该事件具有冒泡的DOM到'document'它处理之前。因此Bootstrap已经在事件到达时处理了事件。如果你需要使用一个委托处理程序有这个 –
周围也没有路正如罗里说,被触发的文档你的第二个事件。如果你想要相同的行为,它应该是$('#collapse-button“)。on(”click“,...)。 – Zetura