ホームページ > ウェブフロントエンド > jsチュートリアル > jquery mobile は要素を動的に追加した後、正しくレンダリングできません。

jquery mobile は要素を動的に追加した後、正しくレンダリングできません。

WBOY
リリース: 2016-05-16 16:57:00
オリジナル
1283 人が閲覧しました

jquerymobile が動的に追加した後に一部の要素が正しくレンダリングされない問題の解決策:
listview: Add jq(".detail").listview("refresh");
div など :Add .trigger( "create" );
================================== ====== =================================

jqm がページを初期化すると、data-xxx に従って jqm 属性とクラスが各要素に挿入されます。ページが初期化された後、要素が動的に挿入されると、jqm スタイルが挿入されないため、表示が見苦しくなることがよくあります。ブラウザの開発ツールを使用してこれを確認すると、一部の要素にはさらに多くのクラスが含まれていることがわかりますが、動的に挿入された要素のコードは作成したものと同じです。

動的に挿入された要素に jqm スタイルを持たせたい場合は、jqm オブジェクトで create イベントをトリガーできます:

コードをコピー コードは次のとおりです。

$(selector).trigger('create');
作成イベントには幅広い用途があり、ボタンの挿入など、存在しない要素 (生のマークアップ?) を使用することもできます

コードをコピーします コードは次のとおりです:
$('dy button')。 appendTo('#content').trigger('create ');

一部のオブジェクトは、リストビューやフリップトグルなどの更新メソッドを提供します。 create との違いは、refresh メソッドが
などの既存のオブジェクトに作用する必要があることです。 $('ul').listview('refresh') と更新すると、新しく追加された要素のみが更新され、リストビューに最後に追加された要素が更新され、元の要素は変更されません。 (私の理解が間違っていたかどうかはわかりません。テストされていないものもあります。原文

http://stackoverflow.com/questions/7663078/jquery-mobile-page-refresh-mechanism

jqm スタイルを使用しないでください:

jqm に要素を自動的に初期化させたくない場合は、2 つの方法があります。 data-role="none" 属性を追加するか、mobileinit イベントで keepNative オプションを構成します


コードをコピーします コードは次のとおりです。次のように:
$(document).bind('mobileinit',function(){
$.mobile.page.prototype.options.keepNative = "select, input.foo, textarea .bar";
});

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート