在javascript中的点击事件没有触发

时间:2015-11-17 15:27:11

标签: javascript jquery javascript-events

我正在使用JQuery sortable并且有两个列表,我将项目从一个移动到另一个。只需双击即可完成第一步。现在它位于第二个列表中,我想允许用户通过单击并按下删除键来删除项目。我这样做的计划是使用click事件触发器并使用类装饰列表项,然后当命中删除键时,它将删除该类的所有项。此时,我遇到了使点击事件占据的问题。由于我正在创建动态列表项,因此我使用的是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");
});

警报就在那里,以便我知道它是否被击中。让我知道你认为错误的地方或我缺乏理解的地方。

2 个答案:

答案 0 :(得分:2)

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

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

或者,如果您的脚本在<body>

之前执行
$(document).on('click', '.cartSortable li', function () {

答案 1 :(得分:-1)

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

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