我在jquery :animated
选择器中遇到问题,我在jquery animate
函数中使用回调函数在动画完成后调用ajax页面,但问题是:通过ajax调用调用页面双倍!
$('#elemId').click(function(){
$('html,body').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){
$('#sections_display').load('page.php');
});
});
结果“page.php加载了两次!在firebug中。”
所以我试过了:
$('#elemId').click(function(){
$('html,body').animate({scrollTop: $('#sections_display').offset().top-100}, 500);
});
if ($('html,body').is(":animated")) {
$('#sections_display').load('page.php');
}
问题是if ($('html,body').is(":animated"))
在页面动画期间始终返回true
但我希望在动画完成后返回true。
我也试过了:
$('#elemId').click(function(){
$('html,body').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){
if ($(this).is(":animated")) {
$('#sections_display').load('page.php');
}
});
});
结果“page.php被加载两次”。
答案 0 :(得分:2)
结果“page.php加载了两次!在firebug中。”
那是因为您将事件附加到html
和body
。试试html
:
$('#elemId').click(function(){
$('html').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){
$('#sections_display').load('page.php');
});
});