我有一些jQuery效果(slideUp()
等)可以正常工作。
现在我.load()
在setTimeout
之后,效果不再有效。
这是因为在我假设的.load()
之前,div并不存在。
效果和.load()
都在同一个JS文件中,并且都包含在jQuery(document).ready(function($) { /*They are here*/ });
如何在.load()
之后调用这些效果?
答案 0 :(得分:1)
由于你没有发布代码设置.slideUp()方法等。我假设你有类似的东西:
$(function) () {
$('.class').slideUp(300);
$('.wrapper').load('someurl.html'); // this loads some elements with .class
// these elements won't get slideUp applied because they are not in the DOM at the time of the slideUp call
)};
您需要在加载回调中设置事件/功能:
$('#result').load('ajax/test.html', function() {
//apply events to new elements
$('.class').slideUp(300); // this would be inside a click event I'm assuming
});
或者如评论中所提到的......你可以(应该)使用.on来处理委托。我的观点是尝试帮助您了解未应用事件的原因