完全なページをリロードせずに、ボタンをクリックして特定のdivにjsをリロードしたいとします。また、jsがロードされているdivをリロードすることもできます。JSをリロードするか、完全なページを分割しないでください
私はalreadのようないくつかのソリューションを試みた:のみ
$("#content").load(location.href + " #content");
: http://www.philnicholas.com/2009/05/11/reloading-your-javascript-without-reloading-your-page/
またはここ Refresh/reload the content in Div using jquery/ajax
例えば、このコードを使用してから、次のような他の記事のいくつかのアイデアをスクリプトではなくdivがリロードされ、何も表示されません。
ajaxリクエストを使用すると、すべてのjsコードがdivとしてテキストとして格納されます。
これ以上のアイデアはありますか?
EDIT:読み込まれるスクリプトは、セッションの値によっては内容を表示します。ボタンをクリックすると、スクリプトを実行しているdiv内の別のコンテンツになるはずの値が変更されます。
EDIT 2: 現在の状態がページ全体をリロードさ: これは、追加のコンテンツは(他のdivやもの)スクリプトによって追加されたdiv要素です:
<div id="dynamic_content">
<script src="myjs.js"></script>
</div>
そして、ここでは、するためのボタンでありますコンテンツの表示を変更:
<div id="change_view_mode" onclick="change_view()">
<script>
if(window.SESSION.view_mode == "simple"){
document.getElementById("change_view_mode").innerHTML = "complex tree";
}else{
document.getElementById("change_view_mode").innerHTML = "simple tree";
}
</script>
</div>
そして、ここで私はコンテンツのリロードを実装しようとしたビューを変更する機能:
//toggle view and reload the page
function change_view(){
if(window.SESSION.view_mode == "simple"){
$.ajax({
url:'set_view_mode.php',
async: false,
});
//$("#dynamic_content").load(location.href + " #dynamic_content");
location.reload(true);
}else{
$.ajax({
url:'set_view_mode.php',
async: false,
});
//$("#dynamic_content").load(location.href + " #dynamic_content");
location.reload(true);
}
}
小さなPHPファイルを呼び出して、セッション内のview_modeを変更します。次に、私は言及したようにいくつかのことを試しました(1つはコメントとしてコードに残されています)。これは、現在のビューに応じて行われます。そのため、ビューを一方から他方に切り替えるだけです。
こんにちは@Maki、私の答えを確認してください。それはあなたが必要とするものですか? – Ionut