1

Android の phonegap アプリケーションに問題があります。リストアイテムをタップすると、タップが次のページに続くように見え、前のページで押した場所と同じ場所にあるアイテムも押されます。

これが発生するケースは 2 つあります。最初のケースでは、リスト ビュー アイテムを押すと、サブリストのあるページが開きます。そして、リスト項目を押すとフォームが開きます。アイテムを長押しすると、この問題は発生しないことに注意してください。

アプリが iOS で実行されている場合、これは問題ではありません。

これを防ぐ方法についてのアイデアはありますか?

編集: 更新後のハンドラーをクリックします (ただし、クリックスルーに苦しんでいます):

    $(parentListView).on('click', 'li', function(event) {
        event.stopPropagation();
        event.stopImmediatePropagation();
        $.mobile.changePage("#care-plans?id=" + this.id + "&" +
                "name=" + this.name, {
            transition : "none",
            });
    });
4

1 に答える 1

2

jQM イベントの失敗は、次のように防ぐことができます。

  1. イベントの落下を引き起こしているボタンがあるとしましょう。次のように防ぐことができます。

    $('#buttonID').on('click', function (event) {
        event.stopPropagation();
        event.stopImmediatePropagation();
    });
    
  2. 同様の解決策:

    $('#buttonID').on('click', function (event) {
        return false;
    });
    

    ポイント 1 とは異なり、このソリューションには問題があります。return false はpreventDefault()としても機能します。このソリューションの詳細については、こちらを参照してください。

  3. あなたの場合、最初の2つのソリューションが機能するはずです。最悪の場合、2 ページ目にイベントをバインドしないでください。それらを 2 ページ目の pagebefore show イベントでのみバインドし、pagehide イベントで再度削除します。jQM イベント順序の詳細については、こちらを参照してください。

于 2013-01-03T16:45:08.077 に答える