javascript 中的点击事件未触发

on click event in javascript not triggering

我正在使用 JQuery sortable 并且有两个列表,我正在将项目从一个列表移到另一个列表。第一步只需双击即可。现在它在第二个列表中,我想允许用户通过单击并按下删除键来删除项目。我的计划是触发一个点击事件并用 class 装饰列表项,然后当删除键被按下时,它将删除所有带有 class 的项目。在这一点上,我在获取点击事件时遇到了问题。由于我正在动态创建列表项,因此我使用了 on event 关键字。我的第二个列表 html 如下所示。

<div id="CartContents" class="ui-widget-content">
     <ul id="sortableArea" class="cartSortable">
     </ul>
</div>

我尝试处理点击事件的 js 如下所示。

$('.cartSortable li').on("click", function () {
    alert('here');
    $(this).toggleClass("selected");
});

警报就在那里,这样我就知道它是否被击中了。让我知道您认为错误的地方或我的理解不足的地方。

由于您是动态创建列表项,因此您需要 delegate the event:

$('.cartSortable').on('click', 'li', function () {

或者,如果您的脚本在 <body> 之前执行:

$(document).on('click', '.cartSortable li', function () {

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

$('.cartSortable li').live("click", function () {
    alert('here');
    $(this).toggleClass("selected");
});