2016-12-10 8 views
0

完全なページをリロードせずに、ボタンをクリックして特定の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つはコメントとしてコードに残されています)。これは、現在のビューに応じて行われます。そのため、ビューを一方から他方に切り替えるだけです。

+0

こんにちは@Maki、私の答えを確認してください。それはあなたが必要とするものですか? – Ionut

答えて

関連する問題