2016-06-17 9 views
-5

ヘッダーの上部にログインフォームを作成しています。しかし、ユーザーがログインすると、フォームが消えてしまいます。私はユーザーがログインしていないかどうかを確認し、そうであればフォームを追加します。しかし、私はJavaScriptでそれをやりたいJqueryを使用してdiv要素とフォームをページに挿入するには

+2

で再びそれを隠します/ユーザのログイン状態に基づいてHTMLを表示する –

+0

header-contentを隠す: 'document.getElemen tById( 'header-content')。style.display = 'none'; '。 'document.getElementById( 'header-content')を表示するにはstyle.display = 'block';'または 'inline'を使うことができます。 – FrozenFire

+0

しかし私のヘッダーとフッターを.load()メソッドを使って他のページに含めること – Pickles

答えて

2

jQueryのappend()関数を使用することで簡単に答えられます。

この問題は、すべてをテキストとして挿入する必要があり、メンテナンスの問題になります。絶対に。

より良い方法は、div37を挿入し、デフォルトでdisplay:noneを使用して非表示にし、必要に応じてプログラムでdisplay:blockに設定することです。

Angularのようなものを使用する場合は、必要に応じてテンプレートを挿入してdivを含めることもできます。しかし、この目的のためにdisplayを使用することは、正しい方法として広く受け入れられています。

編集:あなたはページの一部のため、すでにload()を使用しているので

、あなたはおそらく、ここで同じことを行うことができます。

HTMLにコンテナタグを追加します。

<div id="loginContainer"></div> 

は、このようなネストされたコンテンツを追加します。

$("#loginContainer").load("http://some.url.com/path"); 

隠すように容易になるだろうhtml()

$("#loginContainer").html(""); 
+0

ものは私の他のページの間に私のヘッダーとフッターを含めるために.loadメソッドを使用して私は – Pickles

+0

私は試みた.addClass/.removeClassを試みたが、それは他のページにわたって更新するようです。 append()は動作しますか? – Pickles

+0

これはさまざまなことをします。 'append()'はタグにコンテンツを追加するので、テンプレートをページに挿入する方法として提案しています。 'addClass()'と 'removeClass()'は、どのCSSクラスがタグに関連しているかを変更します。スタイルの特定の要素を直接変更するには(jQueryの 'css()'関数を使います)。 '$(" loginSelector ")。css(" display "、" none ")'はログインフォームを隠します。 –

関連する問題