jquery函数到被追加的元素?

时间:2011-10-01 04:23:21

标签: jquery function append

我正在尝试追加一些html的东西,我想知道当我尝试编写一些jquery函数时,为什么刚刚附加的元素不起作用?

例如,如果我有一个文本列表,当您点击某个内容时,该列表将填充某种.append('more text')到该列表。然后,如果我写了一些jquery函数说当悬停在该文本上时,它将无法工作。它只适用于在追加之前已经填充的文本。

我希望我的例子澄清我的问题?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

使用jQuery的live() method而不是常规事件处理程序。例如:

$('#myelement > *').live('mouseenter', function(evt) {
    $(this).addClass('hovered');
}).live('mouseleave', function(evt) {
    $(this).removeClass('hovered');
})

现在,当你这样做时

$('#myelement').append( '<div>More Stuff</div>' );

新添加的div将根据需要获取mouseenter和mouseleave事件。

答案 1 :(得分:1)

您可能正在使用.click().hover()等绑定处理程序。这些只适用于绑定处理程序时页面上已有的项目。

请尝试使用.live(event, handler)。这绑定到现在匹配的元素,并且稍后添加与之匹配的任何元素。

e.g。

$('li').live('click', function() {
    // do stuff here
});