我正试图解除对动画的点击,直到动画结束,以防止发生重叠的动画。 unbind工作正常,但当然,event.preventDefault停止工作,我的按钮/链接再次变为活动状态。我不知道如何解决这个问题。
缩短版的代码是:
$('a.Next').bind('click', SlideFwd);
function SlideFwd(e){
e.preventDefault();
$('a.Next').unbind();
$('ul.GridviewList').animate({
left: '-=800px'
}, 'slow', function() {
$('a.Next').bind('click', SlideFwd);
});
};
和html是:
<div>
<div class="SlideControl">
<p class="Pages"><span class="ProdCountDisplay">#</span> of <span class="ProdCountTotal">10</span></p>
<ul>
<li><a class="Disabled button_Back Previous" href="#">Prev</a></li>
<li><a class="button_Next Next" href="#">Next</a></li>
</ul>
</div>
<ul class="GridviewList">
<li class="ProdWrap">This is a slider space 1</li>
<li class="ProdWrap"> This is a slider space 2</li>
<li class="ProdWrap"> This is a slider space 3</li>
<li class="ProdWrap"> This is a slider space 4</li>
<li class="ProdWrap"> This is a slider space 5 </li>
<li class="ProdWrap">This is a slider space 6 </li>
<li class="ProdWrap"> This is a slider space 7</li>
<li class="ProdWrap"> This is a slider space 8 </li>
<li class="ProdWrap"> This is a slider space 9 </li>
<li class="ProdWrap"> This is a slider space 10 </li>
</ul> <!-- ul.Gridviewlist -->
</div>
完整的工作版本在这里: http://iwrb.idleprattle.com/Slider.htm (现在只有下一个设置了unbind / bind)
我也尝试在函数SlideFwd之外使用preventDefault,但它也必须取消绑定。即。
$('a.Next').click(function(){e.preventDefault();});
答案 0 :(得分:3)
你可以这样做:
$('a.Next').bind('click', SlideFwd);
...
$('a.Next').unbind().bind('click',function(e){e.preventDefault();});
...
$('a.Next').unbind().bind('click', SlideFwd);
答案 1 :(得分:0)
为什么不从链接中删除href-attribute。它没用,游标可以通过CSS设置,如果a元素没有href,如果没有连接事件处理程序,就没有什么可以阻止的。