0

この質問の前に、サイトにアクセスしてバスケットに何かを追加してみて、それが何をするかを確認することをお勧めします.

ここに移動してバスケットに何かを追加すると、スライド アウト タブが出てきて、バスケットに追加したことが示されます。

これは、[バスケットに追加] ボタンの機能と .trigger (一緒にスライド アウトするためのハンドル) のクリックをバインドすることによって生成され、[バスケットに追加] をクリックすると [トリガー] へのクリックがシミュレートされます。

simpleCart.bind( "afterAdd" , function(){
    $('.trigger').click();
});

2 番目の項目を追加すると、問題が発生します。バスケット スライド アウトは既に「アウト」状態にあるため、2 回目に「バスケットに追加」を押すと、関数が再度呼び出され、トリガーに「クリック」が作成され、今度はバスケット スライド アウトが閉じます。 .

バスケットのスライドアウトが「アウト」状態にあるかどうかをテストし、この機能を実行しないコード行を実装するにはどうすればよいですか...またはより良い方法はありますか?

スライドアウトを制御するコードは次のとおりです。

    var settings = {
        objSlideTrigger: '.trigger',
        objSlidePanel: '.panel'
    }

スライドアウトの機能は次のとおりです: http://www.rubytuesdaycreative.co.uk/js/slideout.js

4

2 に答える 2

1
simpleCart.bind( "afterAdd" , function() {
    var isHidden = !$('.panel').is('.out');
    if(isHidden) {
        $('.trigger').click();
    }
});
于 2012-11-17T22:49:25.037 に答える
0

div をスライドさせる関数で、スライドさせる前に非表示になっているかどうかを確認します。

if ($(div:hidden).length > 0) {
    //slide out div
}

現在のコードに追加するには、次を追加します。

$('.trigger').is(':hidden').click();
于 2012-11-17T22:46:06.260 に答える