用于动态创建的UL的jQuery单击事件处理程序不起作用

时间:2014-02-28 16:25:34

标签: jquery jquery-ui

我有带有jQuery连接可排序功能的UL列表,试图通过多项选择和放大来实现连接排序。拖动。

在我的页面中,用户可以动态创建UL列表,我在DIV控件中创建动态UL列表。在document.ready()函数中,我将点击事件处理程序附加到UL控件。但是此处理程序未附加到DIV内创建的UL控件。为什么呢?

我也附上了Fiddle样本。

任何帮助

Fiddle: http://jsfiddle.net/EN2P5/2/

2 个答案:

答案 0 :(得分:0)

绑定生成的DOM元素时,需要使用on函数。

$("ul").on("click", function(){
   console.log("click");
});

您还可以使用binddelegate

答案 1 :(得分:0)

您可以尝试使用现在以这种方式使用的.live()方法,因为.on()函数存在:

$(document).on('click', 'ul li', function (e) {
    if (e.ctrlKey || e.metaKey) {
        $(this).toggleClass("selected");
    } else {
        $(this).addClass("selected").siblings().removeClass('selected');
    }
})

http://jsfiddle.net/EN2P5/8/