1

我有以下代码将数据添加到无序列表中。麻烦的代码如下:

$('li:not(:first-child)').click(function() {
    var clickedLi = this;
    $(this).parent().prepend(clickedLi);
    var selectedLi = $(this).text();
    alert(selectedLi);
 $(this).parent().parent().nextAll().children('ul').children().replaceWith('<li>Please select</li>');

    //ajax call
    var returnedData = "<li>Dataset1</li><li>Dataset2</li><li>Dataset3</li>";

    //populate next with returned data
    $(this).parent().parent().next().children('ul').append(returnedData);
});​

如果单击第一个 ul 中的一个选项,数据将添加到第二个 ul。但是,这个ul下的列表项是不可点击的,我需要它们是这样的,这样'链'才能继续。

错误在哪里?任何帮助将非常感激。提前致谢。

4

2 回答 2

2

尝试:(如果您使用 jQuery 大于 1.6.8。)

$(document).on('click','li:not(:first-child)',function() {

http://api.jquery.com/on/

于 2012-05-12T19:10:35.297 回答
1

我可以假设,根据您的代码判断,您希望新添加的 li 继承您附加到现有行为的行为。不幸的是,它不能与以这种方式编写的代码一起使用。

您需要以“可观察”的方式附加单击事件,以便新添加到 dom 的元素将附加事件处理程序。

为此,您必须使用该.on方法。您可以在此处查看其参考

于 2012-05-12T19:10:00.383 回答