2012-01-09 6 views
0

私は、実行時にドキュメントに追加するシンプルなhtmlスニペットを持っています。私はjQueryのセレクタを使用していますが、それは私が直面している問題とは関係ありません。JavaScriptを使用したHTMLコードの挿入

使用:。 $( "#要素ID")HTML()

コードが表示され

が、適用されていないCSSを使用しました。この動作は、CSSが既にロードされて適用されているので理にかなっています。

私の質問は次のとおりです: - htmlコンテンツが変更された後にCSSを再適用するためにDOM要素を "リフレッシュ"する予定はありますか? - またはDOM要素に追加する前にJavaScriptで使用しているコードにCSSを適用する方法はありますか?

私はさまざまなJS \ htmlテンプレートライブラリを認識していますが、この段階では特別ライブラリの依存性を最小限に抑えようとしています。私は\ injectingを生成しているスニペットが非常に簡単で、 JSコード

ジャミルは

+0

要素の再レンダリングを強制しないだろう、それはその定義され、CSSはブラウザがHTMLを表示する方法に変更されません(意味をなさない、CSSルールは、「ランタイム上で」適用されていませんそれによって) – Hannes

答えて

1

あなたは間違っています。 CSSは常に(ランタイム中に)適用されます - このjsFiddleの例を見てください。あなたは何かを混乱させました。

+0

私はDOM要素にhtmlコンテンツを追加するのは簡単です。以下を使用します。$( "#").html(); HTMLコンテンツにはjQueryマークアップが含まれていますが、依然としてディスプレーヤー出力はjQueryスタイルを取得していません。 DOM要素を作成し、それをHTMLに挿入するのではなく、ページに存在する要素の1つに追加すると、違いがありますか? – Jamil

+0

私はjsFiddleを試しても、間違ったレンダリングを得ています。レンダリングしようとしているコードを見ることができますか? jsFiddle:$( 'div#new').html( '

'); – Jamil

+0

私が直面している問題は、CSS \ JavasciptではなくjQueryに関連しているようです。私はこの質問を閉じて、jQueryの問題で新しいものを始める – Jamil

0

cssが適用されていませんか?それはすべきだから。 DOMに新しい要素を追加すると、ロードしたCSSファイルからスタイリングを開始するだけです。どのようにCSSを適用していますか?必要に応じて、要素の

+0

私はCSSを適用しようとしていません。私はhtmlを既存のDOM要素の1つに注入しています。この注入されたコードは表示されますが、必要なCSSプロパティは表示されません。生成されたHTMLコードをHTMLでハードコーディングして別のページでテストしようとしましたが、これはすべてのCSS操作を取り上げました。この問題は、htmlコードを動的に挿入すると発生します。$( "#").html() – Jamil

+0

私が直面している問題は、CSS \ JavasciptではなくjQueryに関連しているようです。私はこの質問を閉じて、jQueryの問題で新しい質問を開始しています – Jamil

0

.trigger('create')には

関連する問題