我正在尝试调试我编写的回调函数,该函数在单击页面上的某些链接时会触发。有一段时间,一切都很好,但有问题,所以我开始尝试调试我的回调。这是我的代码的当前状态:
function doStuff() {
var container = $("#content-container");
var ch = container.height();
container.animate({
top : '-=' + ch + 'px'
}, 500, function() {console.log('animating');});
}
$(".content-link").live("click", function(){
doStuff();
return false;
});
动画会将#content-container
元素从页面顶部移开。过去的情况是,这部动画效果很好。然而,当我用console.log()
替换对animate()
的回调以形成所示的代码时,动画停止了工作,但控制台中仍会记录一条消息。为什么即使正在启动回调,动画也不运行?
问题可能是您在使用live
,而本应使用bind
。据我所知,live
在jquery 1.9中被删除了。
$(".content-link").bind("click", function(){
doStuff();
return false;
});
除此之外,我认为唯一可能错误的是,您需要为容器类设置一个position属性,否则顶部不会有任何效果。
带有工作代码的Fiddle链接
container
元素需要设置position: relative;
才能设置动画。感谢Jan Dvorak指出这一点。尽管我唯一改变的是javascript,而不是我的样式表或任何东西,但我仍然不知道为什么以前的东西能正常工作。。。