无法在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:
问题是这是在您的侦听器代码在文档上运行之后生成的 – 因此您的按钮上没有侦听器。
希望其他人可以告诉你如何添加听众,因为我无法弄明白。