1

私は phonegap (cordova 2.8) と android 4.2.1 を使用しています。フレームワークとして使用しています: ノックアウトと jquery モバイル。アプリはhttp://propertycross.com/jquery-mobile/に基づいています

次のようなおかしな動作が発生します: 別の画面 #2 に移動するボタンをクリックすると、#2 画面の同じ場所にボタンがあれば、それもクリックされます...

私が見つけた唯一の解決策は、画面を変更するコードを setTimeout でラップすることです。

            setTimeout(function() {
                application.navigateTo(viewModel);
            },600);

これで問題は解決しますが、アプリの速度が低下します...

phonegapがすでに遅すぎるため、これは実際には残念です...

ありがとう。

4

1 に答える 1

0

できることは 2 つあります。

1) e.stopPropagation()、e.preventDefault()

phopkins はこれについて次のように説明しています: jQuery モバイル タップ イベントが 2 回トリガーされました

これは私にとって大きな問題だったので、詳しく説明します。これは、タップ、クリック、vclick、およびおそらくその他のイベントのいずれにも適用されます。

次のように、イベント関数に stopPropogation() と preventDefault() を呼び出す必要があります。

$('#selector').tap(function(e) {
    //your code here

    e.stopPropagation();
    e.preventDefault();
});

これは役に立ちますが、「ファントム」クリックがまだ発生する可能性があることがわかりました。

2) イベントをボタンではなくページにバインドします。

そうすれば、次のページにバインドされません。

たとえば、id='myPage' のページと id='myBtn' のボタンの場合:

$('#myPage').on('tap', '#myBtn', function(e) {
    //your code here

    e.stopPropagation();
    e.preventDefault();

});
于 2013-08-08T21:58:01.837 に答える