3

ボックスを作成しようとしていますが、リストアイテムをクリックするとドロップダウンし、クリックすると戻ります。私はこれまで何度もこれを行ってきましたが、何らかの理由でJqueryがdisplay:noneを追加しています。

        $('li.item-162').toggle(function(){
                           $('.login').animate({
                                top: '27px'
                                 }, 1000);

                        },function() {          
                             $('.login').animate({
                                top: '-212px'
                                 }, 1000);
                        });

        $(".li.item-162").show();

そしてfirebugで私のコードは ここに画像の説明を入力してください あなたがそれをここで生きているのを見ることができることを示しています ..http://rdhealthandsafety.co.uk/index.php

なぜこれが起こっているのか、私は火曜日の朝のブルースだと思います:(

4

1 に答える 1

6

.toggle()関数の使用方法はjQuery 1.8以降非推奨であり、jQuery 1.9で削除されました。

カテゴリ: 非推奨 1.8 :

.toggle() 2 つ以上のハンドラーを一致した要素にバインドし、交互のクリックで実行します。

これは、Changes of Note in jQuery 1.9 で説明されています。

これは、.toggle() の「要素をクリックして指定された関数を実行する」シグネチャです。非推奨ではない .toggle() の「要素の可視性の変更」と混同しないでください。前者は、混乱を減らし、ライブラリのモジュール化の可能性を高めるために削除されています。jQuery Migrate プラグインを使用して機能を復元できます。

それにもかかわらず、 Gaby aka G. Petrioliは、 What to use instead of toggle(…)jQuery > 1.8?に対する回答と同じことを行う関数を作成しました。:

$.fn.toggleClick = function(){
    var methods = arguments, // store the passed arguments for future reference
        count = methods.length; // cache the number of methods 

    //use return this to maintain jQuery chainability
    return this.each(function(i, item){
        // for each element you bind to
        var index = 0; // create a local counter for that element
        $(item).click(function(){ // bind a click handler to that element
            return methods[index++ % count].apply(this,arguments); // that when called will apply the 'index'th method to that element
            // the index % count means that we constrain our iterator between 0 and (count-1)
        });
    });
};

次のように簡単に使用できます。

$('selector').toggleClick(function1, function2, […]);
于 2013-03-12T12:49:33.123 に答える