5

我有 2 个可排序的列表(#sortable1 和 #sortable2),并且我创建了 2 个click()函数来处理每个可排序的项目单击事件($("#sortable1 li").click(function(){})$("#sortable2 li").click(function(){}))。

我将 1 个项目从 #sortable1(例如:Sort1 Item 2)列表移动到 #sortable2 列表。问题是当项目已移动到 #sortable2 并且我尝试单击它时,触发的 mouseevent$("#sortable1 li").click(function(){})不是$("#sortable2 li").click(function(){}).

有什么建议吗,如果我将项目从 sortable1 移动到 sortable2 并单击该项目,该项目会触发$("#sortable2 li").click(function(){})吗?

演示:http: //jsfiddle.net/yosafatade/zX3pX/12/

4

3 回答 3

3

我会使用.on.delegate被取代的。这样,您将事件附加到列表而不是列表项。

用这个:

$("#sortable1").on("click", "li", function(){
        $("#testClickSort1").html($(this).html());
});

$("#sortable2").on("click", "li", function(){
        $("#testClickSort2").html($(this).html());
});

小提琴:http: //jsfiddle.net/qkCcS/

于 2012-10-18T16:35:54.560 回答
3

您需要使用on()查看更新http://jsfiddle.net/zX3pX/13/

于 2012-10-18T16:27:35.493 回答
0

我可能会为li它所在的表的每个项目添加一个类。例如

<li class='sort1'></li>

然后当您检查.click$(".sort1")移动项目时运行

$(this).removeClass("sort1");
$(this).addClass("sort2");
于 2012-10-18T16:31:55.603 回答