Javascript 检测添加了.append的可排序项上的单击
我正在创建两个可排序列表,列表中的项目添加了append()。 一切都很好,但我需要使项目之间的点击列表移动 我不明白为什么li上的点击事件不起作用 以下是代码: 追加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
$(“#可用联系人”)。追加(“”+联系人+” ”代码>
点击移动
$('.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);
})