Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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中的单击事件未触发_Javascript_Jquery_Javascript Events - Fatal编程技术网

javascript中的单击事件未触发

javascript中的单击事件未触发,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我使用的是jquerysortable,有两个列表,可以将项目从一个列表移动到另一个列表。第一步只需双击即可。现在它在第二个列表中,我想允许用户通过单击并点击delete键来删除项目。我的计划是使用一个click事件触发器并用一个类装饰列表项,然后当按下delete键时,它将删除该类中的所有项。在这一点上,我遇到了让点击事件占据主导地位的问题。因为我创建的是动态列表项,所以我使用的是on-event关键字。第二个列表的html如下所示 <div id="CartContents" clas

我使用的是jquerysortable,有两个列表,可以将项目从一个列表移动到另一个列表。第一步只需双击即可。现在它在第二个列表中,我想允许用户通过单击并点击delete键来删除项目。我的计划是使用一个click事件触发器并用一个类装饰列表项,然后当按下delete键时,它将删除该类中的所有项。在这一点上,我遇到了让点击事件占据主导地位的问题。因为我创建的是动态列表项,所以我使用的是on-event关键字。第二个列表的html如下所示

<div id="CartContents" class="ui-widget-content">
     <ul id="sortableArea" class="cartSortable">
     </ul>
</div>
$('.cartSortable li').on("click", function () {
    alert('here');
    $(this).toggleClass("selected");
});

警报在那里,这样我就知道它是否被击中了。请告诉我您认为哪里不对,或者我对哪里缺乏理解。

由于您是动态创建列表项的,您需要:

或者,如果脚本在
之前执行:


您可以使用jQuery的
live
方法将事件处理程序绑定到与当前查询选择器匹配的所有元素。


我没有看到任何li。li是延迟加载的,对吗?您的JavaScript代码加载在页面的顶部还是底部?li是动态添加的。我会更新和李在它。我使用的是ul上的类,而不是div上的id。这很有效。谢谢通过阅读您提供的链接,我的快速理解是,事件绑定到页面加载中存在的div,并引用稍后将创建的li。这是正确的,还是有更好的方法来考虑它?你的想法是对的。该事件被委派给
.cartSortable
,它将查找已单击的子
li
。jQuery还将
更改为指向事件处理程序中单击的
li
。Live已被弃用并从现代jQuery版本中删除。4年多以前,这将是一个有效的答案。
$('.cartSortable').on('click', 'li', function () {
$(document).on('click', '.cartSortable li', function () {
$('.cartSortable li').live("click", function () {
    alert('here');
    $(this).toggleClass("selected");
});