无法控制使用.load动态添加的内容

时间:2011-07-03 21:49:46

标签: php jquery ajax

我的内容是我正在使用AJAX调用加载并在div父级内部显示HTML(包含ul s等)。

现在我编写了一系列.click.hover函数,这些函数可以完美地处理所有内容,直到我的内容动态加载的位置,然后在动态上完全不起作用加载的内容。

我已经浏览了所有div ID,以确保它们是正确的。有没有办法控制加载AJAX的材料?

4 个答案:

答案 0 :(得分:0)

您的事件处理程序绑定到设置时存在的元素。

将处理程序重新附加到动态创建的新材料上,或者使用livedelegate;这些“为现在和将来与当前选择器匹配的所有元素附加事件的处理程序”。

答案 1 :(得分:0)

问题是你的代码只运行那时存在的元素而没有“future”元素。你有两个选择:

1)在加载ajax内容后,重新运行“onload”javascript代码(已在文档就绪时应用)。

2)使用.live()代替.bind(): 所以改变

$('#selector').bind('click', function(){..

$('#selector').live('click',function(){..

区别在于live使用与选择器匹配的元素,现在和将来,而bind仅使用与选择器匹配的元素。调用。

希望这会有所帮助。干杯

答案 2 :(得分:-1)

您应该在加载内容后重新绑定事件或使用

.delegateapi)将事件自动附加到新加载的元素。

类似的东西:

$("ul#container").delegate("li", "hover", function(){
    doStuff();
});
$("ul#container").delegate("li", "click", function(){
    doOtherStuff();
});

答案 3 :(得分:-1)

更改

$('a#whatever').click(function(){....

$('a#whatever').live('click',function(){....
相关问题