我正在尝试调试我编写的回调函数,当我点击页面上的某些链接时会触发该函数。有一段时间,一切都运行良好,但它是错误的,所以我开始尝试调试我的回调。这是我的代码的当前状态:
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
元素移出页面顶部。曾经是这个动画工作正常的情况。但是,当我使用animate()
将回调替换为console.log()
以形成显示的代码时,动画停止工作,但仍然会向控制台记录一条消息。即使回调被触发,为什么动画仍然没有运行?
答案 0 :(得分:0)
问题可能是您在使用live
时正在使用bind
。据我所知,jquery 1.9中删除了live
。
$(".content-link").bind("click", function(){
doStuff();
return false;
});
除此之外,我认为唯一可能错误的是你需要为容器类设置一个position属性,否则top不会有任何影响。
答案 1 :(得分:0)
position: relative;
元素设置 container
才能对其进行动画处理。感谢Jan Dvorak指出这一点。我仍然不知道为什么事情以前工作,即使我改变的唯一的东西是javascript,而不是我的样式表或任何东西......