0

私は午後中ずっとこの問題に悩まされていました。Google の Fast Button チュートリアルをナビの「戻る」ボタンに適用しようとしています: https://developers.google.com/mobile/articles/fast_buttons。次のように構築されているため、各セクションには戻るボタンがあります。

<ul class="menu">
    <li class="category">
        <a class="back"></a>
            <li class="product">
    </li>
    <li class="category">
    etc...

css3 トランジションを使用したメニューのスライド インとスライド アウト。これが私を夢中にさせているものです。すべての [戻る] ボタンを保存して配列に送信し、FastButton 関数を呼び出して各ボタンを反復処理します。

var back = document.getElementsByClassName('back');

back = Array.prototype.slice.call(back);

for (var i = 0; i < back.length; i++) {
            new FastButton(back[i], function(){
                $(back[i]).trigger('click');
            });
        }

('li.back').click(function(){
    doStuff();
});

クリック fn は決して発火しません。タップ ハイライトの適用と削除が確認でき、アラートを設定すると、各ボタンがアラートを発します。奇妙な部分?配列の特定のインデックスを呼び出すとうまくいきます:

new FastButton(back[0], function(){
            $(back[0]).trigger('click');
        });

保守性のために、私はむしろそのようにしないほうがいいので、ナビゲーションは将来的に心配することなく変更することができます. どんな洞察も大歓迎です - 私はあまりにも長い間エラーを見つめていて、単純なものが欠けていると思います.

4

1 に答える 1

2

あなたは閉鎖の問題の犠牲者のようです。jQuery を使用しているので、ループを書き直してください。

$.each(back,function(i,item){
    new FastButton(item, function(){
        $(item).trigger('click');
    });
});
于 2012-12-07T21:52:23.373 に答える