如果元素是在循环中创建的,则引导下拉菜单不会触发单击事件

Bootstrap dropdown not firing click event if elements are created in a loop

本文关键字:下拉菜单 事件 单击 元素 循环 创建 如果      更新时间:2023-10-11

我试图使用带有链接的普通Bootstrap下拉菜单,但我想激发Jquery代码,而不是像往常一样重定向链接。该列表将从数据库表中动态创建。

如果我将列表定义如下,我可以让它正常工作。

$(".sitedropdown").append('<li><a class="sitelink" href="#">s</a></li>');
$(".sitedropdown").append('<li><a class="sitelink" href="#">asd</a></li>');

不过,只要我尝试运行一个循环来添加元素,click事件就会神奇地停止工作。

var obj = $.parseJSON(data);
$.each(obj,function(index,arr){
$(".sitedropdown").append('<li><a class="sitelink" href="#">'+arr.wpname+'</a></li>');
});

我到处找这个,但什么也找不到。在有人问之前,是的,我正在使用jquerys ON事件来处理动态添加的元素。

因此,请尝试委派事件:$(".sitedropdown").on("click",".sitelink",function(e){>e.preventDefault();alert("bob");});–A.Wolff

沃尔夫一拍即合。

再次感谢