我正在尝试追加一些html的东西,我想知道当我尝试编写一些jquery函数时,为什么刚刚附加的元素不起作用?
例如,如果我有一个文本列表,当您点击某个内容时,该列表将填充某种.append('more text')到该列表。然后,如果我写了一些jquery函数说当悬停在该文本上时,它将无法工作。它只适用于在追加之前已经填充的文本。
我希望我的例子澄清我的问题?
感谢您的帮助!
答案 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
});