Javascript 检测添加了.append的可排序项上的单击

Javascript 检测添加了.append的可排序项上的单击,javascript,jquery,jquery-ui-sortable,Javascript,Jquery,Jquery Ui Sortable,我正在创建两个可排序列表,列表中的项目添加了append()。 一切都很好,但我需要使项目之间的点击列表移动 我不明白为什么li上的点击事件不起作用 以下是代码: 追加 $(“#可用联系人”)。追加(“”+联系人+”” 点击移动 $('.contact_li').on('click', function () { console.log("click detected"); }); 我错过了什么 非常感谢请尝试查找喜欢的 $('#availble_contacts').find('.c

我正在创建两个可排序列表,列表中的项目添加了append()。 一切都很好,但我需要使项目之间的点击列表移动

我不明白为什么li上的点击事件不起作用

以下是代码:

追加

$(“#可用联系人”)。追加(“
  • ”+联系人+”
  • 点击移动

    $('.contact_li').on('click', function () {
        console.log("click detected");
    });
    
    我错过了什么

    非常感谢

    请尝试查找喜欢的

    $('#availble_contacts').find('.contact_li').on('click', function () {
        console.log("click detected");
    });
    
    或者,您甚至可以对
    单击事件使用
    委托
    方法,如

    $('#availble_contacts').on('click', '.contact_li', function () {
        console.log("click detected");
    });
    

    确保已将代码放入
    dom ready

    中,因为
    联系人是动态添加的,所以需要使用来注册事件处理程序

    // New way (jQuery 1.7+) - .on(events, selector, handler)
    $('#availble_contacts').on('click', '.contact_li', function() {
        console.log("click detected");
    });
    

    请在中查看您的lis。contact_li是动态创建的元素,因此js事件的直接绑定不会附加到它,因此您可以将事件委托给最接近的静态父级,如
    “#available_contacts”
    ,在您的情况下:

    更改此项:

    $('.contact_li').on('click', function () {
    
    为此:

    $("#availble_contacts").on('click', '.contact_li', function () {
    

    您最好在ul而不是li上绑定click事件,并通过“事件”的“目标”检测确切的li

    $("#availble_contacts").on('click', '.contact_li', function () {
    
    $("#availble_contacts").on("click",function(event){
        var e = event || window.event;
        var target = e.target || e.srcElement;
        console.log("you clicked "+target);
    })