Jquery 动态添加事件
我在js文件中有以下代码:Jquery 动态添加事件,jquery,css,events,dynamic,Jquery,Css,Events,Dynamic,我在js文件中有以下代码: $(".dropmenu").on("click", function(event){ event.preventDefault(); $(this).parent().find("ul").slideToggle(); }); 我的网页上有以下代码: var append="<ul>"; $.each(items, function(i, v){ append += "<li><a cla
$(".dropmenu").on("click", function(event){
event.preventDefault();
$(this).parent().find("ul").slideToggle();
});
我的网页上有以下代码:
var append="<ul>";
$.each(items, function(i, v){
append += "<li><a class='dropmenu' href='#'> Option </a>" +
"<ul>" +
"<li><a href='somelink'>somelink</a></li>" +
"</ul></li>";
}
$("div").append(append);
var append=“”;
$。每个(项目、功能(i、v){
追加+=“- ”+
“
”+
“”+
“
”;
}
$(“div”)。追加(追加);
关键是当我的ul标签被填充时,click事件不会触发。我认为这是因为类进入锚点是动态的
如何在append函数之后添加click事件?用于将事件附加到动态添加的DOM
事件委派允许我们将单个事件侦听器附加到父元素,该事件侦听器将为与选择器匹配的所有子体触发,无论这些子体现在存在还是将来添加
使用此选项用于委派。也可以使用.delegate()
当您的
元素被动态追加时,您必须使用任何其他静态父元素的$(document)
来委托事件
$(document).on('click','.dropmenu', function(event){
event.preventDefault();
$(this).parent().find("ul").slideToggle();
});
您是否将代码放入
$(文档)中。准备就绪
我将其放入,并且工作正常
您需要将其绑定到不同的元素,ul也会动态添加。谢谢@Guffa,您的答案非常简单better@elchente23:事实上,我没有发布这个问题的任何答案。当我看到它时,它是关闭的。它对你有效,因为你在附加元素后附加了click事件…这意味着元素是present ready:DSee委托事件处理如何解决动态创建元素的问题:和。
$(document).on('click','.dropmenu', function(event){
event.preventDefault();
$(this).parent().find("ul").slideToggle();
});