好的,我已经处理这个问题几天了,我刚刚发现我无法在引导弹出窗口中触发任何事件。我什至试图触发一个alert()
,它什么也没做。
我有一个带有按钮的弹出窗口。当您单击按钮时,其上的文本会发生变化。有什么帮助吗?在这里拉小提琴。谢谢。
好的,我已经处理这个问题几天了,我刚刚发现我无法在引导弹出窗口中触发任何事件。我什至试图触发一个alert()
,它什么也没做。
我有一个带有按钮的弹出窗口。当您单击按钮时,其上的文本会发生变化。有什么帮助吗?在这里拉小提琴。谢谢。
正如迈克尔在他的回答中指出的那样,在单击链接之前,HTML 中不存在 popover 元素。因此,click
在单击链接之前,处理程序无法附加到它。因此,您可以将点击处理程序移动到弹出调用中,或者使用 jqueryon
委托,如下所示:
$('.location').on('click','.text-btn',function () {
alert('What\'s going on!');
//$('.text-btn').toggle();
});
它的作用如下:它将一个单击处理程序附加到具有location
该类的元素。当单击此元素内的任何内容(例如text-btn
元素)时,事件会冒泡并触发此处理程序。但是,on
处理程序仅侦听由特定元素(在本例中为具有text-btn
类的元素)触发的事件。由于处理程序附加到.location
元素并且该元素是非动态的,因此它将始终可用。
问题是您在尚不存在的节点上分配事件侦听。如果您查看单击时生成的 HTML,则会生成Fire popover
以下 HTML:
<div class="popover-content">
<button class="btn text-btn">Toggle me!</button>
<button class="btn text-btn toggle-text">Un-Tobble me</button>
</div>
问题是这是在您的侦听器代码在文档上运行之后生成的 - 因此您的按钮上没有侦听器。
希望其他人可以告诉您如何添加侦听器,因为我无法弄清楚。