我正在尝试在动画运行时使按钮无法使用。我用按钮编写了一个简单的滚动,但如果用户反复点击按钮,动画就不会停止,所以滚动会反复重复。我点击了unbind
时尝试在元素上使用bind
再次,当动画完成但它似乎不起作用。这是我的代码:
$(".go_up").bind('click',function(){
var $this = $(this);
var $content_page = $this.siblings('.componentin').children('.item-page');
var $content_math = $content_page.height();
var $content_height = ($content_math)*(-1);
var $content_margin = $content_page.css("margin-top");
if (($content_margin) <= '0') {
$this.unbind("click");
$content_page.animate({ marginTop: "+=100px" }, "slow", function(){
$this.bind("click");
});
}
});
以下是示例:www.erincfirtina.com/bar/
[固定]
$(".go_up").bind('click',function(){ var $this = $(this); var $content_page = $this.siblings('.componentin').children('.item-page'); var $content_math = $content_page.height(); var $content_height = ($content_math)*(-1); var $content_margin = $content_page.css("margin-top"); if ((($content_margin) <= '0') && (!$content_page.is(":animated"))){ $content_page.animate({marginTop: "+=100px"}, "slow"); } });
添加.is(":animated")
并顺利运作
答案 0 :(得分:0)
试试这个:
//replace this: $this.bind("click"); with this: $this.unbind('toggle').unbind('click');
希望有所帮助
答案 1 :(得分:0)
你的第二次绑定调用没有给函数调用,所以这是一个问题
顺便说一句,有一个很棒的插件,你想要做的就是accordion,它在jquery ui库中也很有用。很酷的是,还确保始终只打开一个标签(如您给出的示例)