Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ajax之后使事件onclick_Javascript_Jquery_Html_Jquery Selectors - Fatal编程技术网

Javascript 在ajax之后使事件onclick

Javascript 在ajax之后使事件onclick,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,所以,我在寻找选择器方面有点问题 $(document).on('click', 'input[type=checkbox]', function () { alert("hello!"); }); 因此,如果我需要找到页面上的所有复选框,那么该代码可以正常工作。但是 我需要找到里面的复选框 <ul id="sortable-menu"> <li> <input type="checkbox" id=${category['id']} /&g

所以,我在寻找选择器方面有点问题

$(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>
  • //所以,id是动态的

请帮我解决这个小问题。谢谢

只需将最近的静态父级用于委派事件

$('#sortable-menu').on('click', ':checkbox', function () {
    alert("hello!");
});
如果还动态生成了
可排序菜单

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

始终使用最接近的静态容器来代替
文档
,以获得更好的性能

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

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

将选择器更改为“可排序菜单输入[类型=复选框]”