JQuery - appendTo()

时间:2018-06-14 15:16:31

标签: javascript jquery html dom

我将元素从一个列表移动到另一个列表,问题是: 根据{{​​1}},我有<li>的javascript绑定函数,如果我点击具有特定ID的<ul>内的一个<li>,则函数已被执行。< / p>

当我成功移动<ul>时,假设<li>已经在另一个<li>(目标之一)中。但如果我点击新列表中的<ul>,该事件仍会与来源<li>

绑定

如何将<ul>与当前<li>绑定?

感谢您的帮助。

<ul>

1 个答案:

答案 0 :(得分:3)

当脚本第一次执行时事件被绑定,因此,在您的代码中,li中的每个#sourceList都有一个附加到第一个定义的事件侦听器的click事件,无论您是否移动元素到另一个容器与否。您需要使用事件委派:

$('#sourceList').on('click', 'li', function () {
    $(this).appendTo('#destinationList');
    console.log("from source");
});

$('#destinationList').on('click', 'li', function () {
    $(this).appendTo('#sourceList');
    console.log("from destination");
});