在 ajax 之后创建事件 onclick

Make event onclick after ajax

所以,我在寻找选择器时遇到了一点问题。

$(document).on('click', 'input[type=checkbox]', function () {
    alert("hello!");
});

因此,如果我需要查找页面上的所有复选框,该代码可以正常工作。但! 我需要找到里面的复选框

<ul id="sortable-menu">
  <li>
     <input type="checkbox" id=${category['id']} />//so, id is dynamic
  </li>
</ul>

请帮忙解决我的小问题。谢谢!

只需为委托事件使用最近的静态父级

$('#sortable-menu').on('click', ':checkbox', function () {
    alert("hello!");
});

如果sortable-menu也是动态生成的

$(document).on('click', '#sortable-menu :checkbox', function () {
    alert("hello!");
});

代替document始终使用最近的静态容器以获得更好的性能。

您传递给 jQuery 的是一个 CSS 选择器,因此您可以只描述您正在寻找的结构:

$(document).on('click', '#sortable-menu li input[type=checkbox]', function () {
    alert("hello!");
});