1

アニメーションが終了するまでアニメーションのクリックのバインドを解除して、重複するアニメーションが発生しないようにしようとしています。バインド解除は正常に機能しますが、もちろん、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を取得しようとしましたが、それもバインドを解除する必要があります。IE

$('a.Next').click(function(){e.preventDefault();});
4

2 に答える 2

3

あなたはこれを行うことができます:

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

...

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

...

$('a.Next').unbind().bind('click', SlideFwd);
于 2011-04-29T01:48:59.523 に答える
0

リンクからhref属性を削除してみませんか。そこでは役に立たず、CSSを介してカーソルを設定できます。また、a要素にhrefがない場合、イベントハンドラーがアタッチされていなければ防ぐことはできません。

于 2011-04-29T01:46:36.263 に答える