无法在bootstrap中触发popover内的任何javascript事件

好吧,我已经处理了这个问题几天了,我发现我无法在引导程序弹出窗口中触发任何事件。 我甚至尝试触发alert()并且它什么也没做。

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

正如迈克尔在他的回答中指出的那样,在点击链接之前,HTML中不存在popover元素。 因此,在click链接之前, click处理程序无法附加到该处理程序。 所以你可以将click处理程序移动到popover调用中,或者on委托on使用jquery,如下所示:

 $('.location').on('click','.text-btn',function () { alert('What\'s going on!'); //$('.text-btn').toggle(); }); 

在小提琴中看到这项工作

它的作用如下:它将一个单击处理程序附加到具有location类的元素。 当单击此元素内的任何内容(例如text-btn元素)时,事件会冒泡并触发此处理程序。 但是, on处理程序仅侦听由特定元素触发的事件(在本例中为具有text-btn类的元素)。 由于处理程序附加到.location元素,并且此元素是非动态的,因此它始终可用。

问题是您要在尚不存在的节点上分配事件侦听。 如果查看单击Fire popover时生成的HTML,将生成以下HTML:

 

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

希望其他人可以告诉你如何添加听众,因为我无法弄明白。