Jquery 取消绑定单击,但保留eventPreventDefault();

Jquery 取消绑定单击,但保留eventPreventDefault();,jquery,jquery-animate,bind,unbind,Jquery,Jquery Animate,Bind,Unbind,我试图让我们在动画结束之前解除对动画的绑定,以防止重叠动画发生。解除绑定工作正常,但当然,event.preventDefault停止工作,my按钮/链接再次激活。我不知道如何解决这个问题 代码的缩写版本为: $('a.Next').bind('click', SlideFwd); function SlideFwd(e){ e.preventDefault(); $('a.Next').unbind(); $('ul.GridviewList').animate({

我试图让我们在动画结束之前解除对动画的绑定,以防止重叠动画发生。解除绑定工作正常,但当然,event.preventDefault停止工作,my按钮/链接再次激活。我不知道如何解决这个问题

代码的缩写版本为:

$('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> 

为什么不从链接中删除href属性呢。它在那里没有任何用处,可以通过CSS设置光标,如果a元素没有href,那么如果没有附加事件处理程序,就没有什么可以阻止的。

您可以这样做:

$('a.Next').bind('click', SlideFwd);

...

$('a.Next').unbind().bind('click',function(e){e.preventDefault();});

...

$('a.Next').unbind().bind('click', SlideFwd);

太棒了,这只做了一个小改动:$('a.Next').unbind().bind('click',function(){e.preventDefault();});更改为$('a.Next').unbind().bind('click',函数(e){e.preventDefault();});啊,是的,没有测试,错过了e。为子孙后代更新答案!
$('a.Next').bind('click', SlideFwd);

...

$('a.Next').unbind().bind('click',function(e){e.preventDefault();});

...

$('a.Next').unbind().bind('click', SlideFwd);