javascript - 从动态生成的 div 调用 li

标签 javascript jquery

我有一个 div,然后在其中动态生成几个 div,所以它看起来像这样生成的:

<div class="info">
  <div class="other"></div>
  <div class="items">
    <li></li>
    <li></li>
  </div>
</div>

我在 $(".info") 上使用 .append 来插入 div 和 li(在其中一个)。我的问题是让 li 可点击。由于它们是动态生成的(及其父级 $(".items")),因此这是行不通的:

$(".items").on('click', 'li', function() {
  console.log("val"); 
});

编辑:嘿,我已将 div 更改为 ul,因此生成了:

<div class="info">
  <div class="other"></div>
  <ul class="items">
    <li></li>
    <li></li>
  </div>
</div>

但是我之前的js还是不行。现在尝试您的所有建议!谢谢!

最佳答案

您必须将事件委派到 .infobodydocument,因为您甚至会生成 .items动态。并且 li 仅在 ul 内有效。

$(".info").on('click', '.items li', function(e) {
    console.log("val"); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="info">
  <div class="other"></div>
  <ul class="items">
    <li>one</li>
    <li>two</li>
  </ul>
</div>

关于javascript - 从动态生成的 div 调用 li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39209211/

相关文章:

javascript - React 动态表单输入 useRef typeError

javascript - 如何使用 JavaScript 检测设备方向?

php mysql 从数据库中检索上传的照片

javascript - 如何在使用 jQuery 加载页面时禁用用户输入?

php - 如何检查 url 在 jQuery 中是否没有查询字符串?

javascript - 如何使用toDataURL设置为PNG8?

javascript - 找到等于所需总和的两个数字

javascript - 根据 MIN 和 MAX 数组值更改 DIV 颜色背景?

javascript - 无法在 jQuery 中捕获事件

javascript - 如何在 jQuery +jQuery Mobile 中添加行删除选项?