5

好的,我已经处理这个问题几天了,我刚刚发现我无法在引导弹出窗口中触发任何事件。我什至试图触发一个alert(),它什么也没做。

我有一个带有按钮的弹出窗口。当您单击按钮时,其上的文本会发生变化。有什么帮助吗?在这里拉小提琴。谢谢。

4

2 回答 2

7

正如迈克尔在他的回答中指出的那样,在单击链接之前,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元素并且该元素是非动态的,因此它将始终可用。

于 2013-07-15T20:46:14.017 回答
2

问题是您在尚不存在的节点上分配事件侦听。如果您查看单击时生成的 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>

问题是这是在您的侦听器代码在文档上运行之后生成的 - 因此您的按钮上没有侦听器。

希望其他人可以告诉您如何添加侦听器,因为我无法弄清楚。

于 2013-07-15T20:33:51.397 回答