4

ページ ID と data-url 属性の関係は何ですか。関係はありますか。data-url 属性を変更しても問題ありませんか。

私の問題は、changePage を使用してパラメーターを渡すページがあることです。また、changePage で data-url を指定します。そのページに移動した後、ページを手動で更新すると、そのページのデータ URL が異なるため、新しいページが追加されます。つまり、data-url はページ ID と同じになります。これについて明確であることを願っています。ページの手動更新中にページが置き換えられるようにするにはどうすればよいですか。

そして、JQMがページIDとデータURLをどのように使用するかを誰か説明してください。前もって感謝します。

4

1 に答える 1

3

このdata-url属性は、ページ要素の起源を追跡するために使用されます。明示的に設定されていない場合、メイン アプリケーション ドキュメント内に埋め込まれたすべてdata-urlのページの属性は、 page と等しくなりますid。これに対する唯一の例外は、ドキュメントの最初のページです。data-urlページをリクエストすると、jQuery Mobile は最初に DOMで一致するページを見つけようとします。そのようなページが見つからない場合は、Ajax リクエストを実行し、新しいページを DOM にロードします。

以下の 3 つの方法のいずれかを使用して問題を解決できます。

次のコードを使用して、別のページに移動するときに DOM から 2 ページ目を削除します。

$(document).on('pagehide', '#second-page', function(event, ui){
    $(event.target).remove();
});

このようにして、最初のページに移動すると、2 番目のページが DOM から削除され、問題が解決されます。

または:

使用する:

$.mobile.changePage('car-details.html', {
    data: {
        id: this.id
    }
});

設定を使用せずにdataUrl

これにより、URL が作成されます: ../car-details.html?id=my_val

更新しても URL は同じままなので、引き続きパラメーターを取得でき、これdata-urlはページ ID と同じです。

また

DOMに 2 番目のページの ID と等しいchangePage()ページが存在するかどうかを確認し、手動で削除してください。data-url

if ($("#second-page-id").length > 0 && $("#second-page-id").attr("data-url") === 'second-page-id' ) {
    console.log('remove from DOM');
    $("#second-page-id").remove();
}
于 2013-06-23T14:52:25.490 に答える