replaceWithを使用して複数のページに共通のナビゲーションバーを追加しています。replaceWithで追加された要素にJqueryの効果がありません
replaceWith()の後に、li要素の1つに「アクティブ」クラスを追加してリンクをアクティブに見せたいと思います。
コードは実行時に影響しません。しかし、後でChromeスニペットで$( "#link1")。addClass( "active")を実行すると、期待通りに機能します。
<body>
<div id='nav-placeholder'></div>
<script>
$.get("static/html/navbar.html", function(data){
$("#nav-placeholder").replaceWith(data);
});
//There is an <li> element in navbar.html with id="link1"
$("#link1").addClass("active");
</script>
</body>
試し '$(ドキュメント).ready(関数(){...あなたのコードを... }); ' –
いいえ、効果はありません。 addClass()の前と後にconsole.log()を追加し、両方が表示されたがリンクには何の影響も与えなかった。 –
'$ .get()'は**非同期**操作です。コールバック内のコードは、HTTP要求が完了すると実行されます。 '$ .get()'の直後のコードは、そのコールバックが呼び出される前に直ちに実行されます。 – Pointy