リンクがクリックされたときに div のコンテンツを置き換えるのに問題があります。コンテンツを 1 回置き換えることはできますが、2 回目はできません。新しいdivのIDを取得できないと思います。
[グループ 1 を表示] をクリックしてから、グループ 2 を表示します。両方を置き換えることはできますが、グループ 1 を再度置き換えることはできません。ページを更新して、プロセスをもう一度確認してください。
どんな助けでも大歓迎です。
リンクがクリックされたときに div のコンテンツを置き換えるのに問題があります。コンテンツを 1 回置き換えることはできますが、2 回目はできません。新しいdivのIDを取得できないと思います。
[グループ 1 を表示] をクリックしてから、グループ 2 を表示します。両方を置き換えることはできますが、グループ 1 を再度置き換えることはできません。ページを更新して、プロセスをもう一度確認してください。
どんな助けでも大歓迎です。
あなたの問題はreplaceWith()
、ハンドルとして使用しているコードを置き換えることです...
$j(".monitoringDesc").click(function(e) {
e.preventDefault();
$j(".widgetGroup").html($j("#newGroup").html());
$j(".widgetGroup").show("slide", {
direction: "right"
}, 200);
});
これにより、コンテナwidgetGroup
が無傷に保たれます-次を使用して内容を置き換えるだけです.html()
コードと機能をもう少し一般的にすることができます...最初にdata
HTMLにいくつか追加します:
<li><a href="#" class="monitoringDesc" data-target="newGroup">Show group 1</a></li>
<li><a href="#" class="monitoringDesc" data-target="newGroup2">Show group 2</a></li>
追加したのは 2 つのdata-target
属性だけです。次の jQuery は、上記のデータに基づいて必要なコンテンツを取り込みます。
$j(".monitoringDesc").click(function(e) {
e.preventDefault();
$j(".widgetGroup").html($j("#"+$j(this).data('target')).html());
$j(".widgetGroup").show("slide", {
direction: "right"
}, 200);
});
これは.data()data-target
メソッドを使用して、上記の HTML からプロパティを抽出します。また、一致するようにアンカーのクラスを変更しました。これにより、両方でクリック イベントをリッスンできます。
ここに、更新された(機能している)スニペットがあります:http: //jsfiddle.net/qL6gB/6/
これが質問の核心です:
$j(".widgetGroup").html($j("#newGroup").html());
これを使用して、divのコンテンツを変更します