0

私は自分用のシンプルなアプリを作成し、jQuerymobileで少し遊んでみようとしています。私は3つの簡単なサイトを作成しました:

http://jsfiddle.net/ZweUQ/2/

var clickEvent = 'click'; // 'tap'
// global init handler
$(document).live('pageinit', function() {
    console.log('init');
    $('.clck').bind(clickEvent, function(e) {
        console.log($(this).attr("data-href"));
    $.mobile.changePage('#search_what');
});

私が抱えている問題は、2ページ目のdivで、クリック可能/タップ可能になり、サイト3に切り替えたいということです。クリックするとsite3が表示されますが、戻るボタンをクリックすると、 windowsはサイト2に戻り、すぐにサイト3に戻ります。

「What」divとサイト3の「戻る」ボタンを2〜3回クリックすると、私が伝えようとしていることを確認できます。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

これは一般的なjQueryモバイルの問題です。これは、複数のイベントが同じ要素にバインドされているために発生します。前のページに戻るたびに、同じイベントを再度バインドします。

この問題には2つの解決策があります。

  1. イベントをいくつかの要素にバインドする前に、同じイベントがまだバインドされていないかどうかを確認してください。

    例:

    $('.menu-browse:Event(!' + touchEvent + ')').each(function(){
        $('.menu-browse').bind(touchEvent, function(e) {
    
        });
    });
    

また

  1. イベントをバインドするたびに、前にバインドを解除してください。

    例:

    $(this).unbind();
    $(this).bind(touchEvent, function(e) {
    
    });
    

残念ながら、この問題に対する防弾ソリューションはありません。

今見てみましょう:

http://jsfiddle.net/Gajotres/ZweUQ/4/

于 2012-11-24T14:29:55.123 に答える