jquery - 动态添加事件

标签 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 class='dropmenu' href='#'> Option </a>" +
              "<ul>" +
                 "<li><a href='somelink'>somelink</a></li>" +
              "</ul></li>";

}

$("div").append(append);

重点是当我的 ul 标记被填充时,点击事件不会触发。我认为是因为 class into anchor 是动态的。

如何在append函数后添加点击事件?

最佳答案

使用这个 .on()用于委派。使用 .delegate()是另一种选择。

作为您的 <ul>元素正在动态附加,您必须使用 $(document) 委托(delegate)事件任何其他静态父元素。

$(document).on('click','.dropmenu', function(event){
  event.preventDefault();
  $(this).parent().find("ul").slideToggle();
});

Demo Fiddle

关于jquery - 动态添加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051853/

相关文章:

jquery - 使用 Bootstrap 在图标旁边显示弹出窗口

jquery - 需要一些帮助 - Drupal 6 网站上的某些东西破坏了 IE

javascript - 选择父级内两级的 div?

jquery - 在 jQuery 中,如何为 "max-height"CSS 属性设置动画?

javascript - event.target 指向一个子元素

javascript - 更改 noUiSlider 的颜色

html - 表格行没有全高

html - div不能和screen一样宽,另一个div不允许

angularjs - 使用 Angular,如何将单击事件绑定(bind)到元素并在单击时向下和向上滑动同级元素?

javascript - 将键盘事件与文本区域一起使用