jQuery操作临时元素

时间:2014-03-29 00:31:00

标签: jquery html

我有一个ID为#list的列表,其中没有列表项。在我的jQuery脚本中,我有一个函数将#list中的HTML设置为一些列表项。

$('#list').click(function() {
    $('#list').html("<li> blah </li> <li> blooh </li>");
});

但之后,当我试图操纵$(&#39; #list li&#39;)时:

$('#list li').mouseenter(function() {
    this.style.backgroundColor = "red";
});
它似乎不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

它不起作用,因为click处理程序仅应用于DOM中的事物。 试试这个:

$('#list').delegate('li','click',function(){
   this.style.backgroundColor = "red";
});

Delegate将绑定DOM中尚不存在的元素。

答案 1 :(得分:0)

如果使用jQuery v1.7 +,请在其委派的表单中使用.on(),如:

$('#list').click(function () {
    $('#list').html("<li> blah </li> <li> blooh </li>");
}).on("mouseenter", "li", function () {
    this.style.backgroundColor = "red";
}).on("mouseleave", "li", function () {
    this.style.backgroundColor = "white";
});

<强> JSFIDDLE

注意您可以链接事件