2012-01-13 18 views
0

まず、すべての点を尊重しながら、どうして私がこれをしなければならないか尋ねないでください。この要求は誰かの要求であり、彼は自分の理由があります。 :JQueryのタブ全体コンテンツを再読み込み

<ul> 
    <li><a href="#tab1">Tab 1</a></li> 
    <li><a href="#tab2">Tab 2</a></li> 
</ul> 
<div id="tab1"> 
    <?= $_GET['somechange1'] ?> 
    <a onclick="actionRunOnTab1()">some change 1</a> 
</div> 
<div id="tab2"> 
    <?= $_GET['somechange2'] ?> 
</div> 

それから私はp2.php」の "p1.php" が含まれる:D

はそうちょうどポイントに...

はちょうど "p1.php" は、このコードが含まれているとしましょう"このようなjavascriptをいくつか追加しました:

<script type="text/javascript" src="jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> 
<link rel="stylesheet" href="redmond/jquery-ui-1.8.16.custom.css" type="text/css" /> 

<div id="tab"> 
    <? include 'p1.php'; ?> 
</div> 

<script language="javascript"> 
     $(function() { 
     $('#tab').tabs(); 
     }); 

     // Some function 
     function actionRunOnTab1() { 
     $.get(
      "p1.php", 
      { somechange1 : 'Something to send out 1' }, 
      function(data){ 
       $('#tab').html(data); 
       $('#tab').tabs(); 
      } 
     );  
    } 
</script> 

私はfirebugをfirefoxで使用してデバッグしました。 $('#tab').tabs();を使用してタブの最初の作成時にタブを作成するために必要なすべての要素にCSSクラスを追加しましたが、2回目に$('#tab').tabs();を使用します。actionRunOnTab1効果はありません。

どのようにすべてのタブを更新できますか?私は1つ1つのタブをリロードする場合は、より多くの余分な$ .get()を必要とすることは、サーバーに接続するために複数回必要であることを意味します。

答えて

1

Ajaxタブをプログラムで再ロードするには、loadeventを呼び出し、問題のタブインデックスを指定します。

$('#mytabs').tabs("load" , index); 
+0

私が間違っていないのであれば、ロードイベントは1つのタブだけをインデックスに依存します。私はすべてのタブをリロードしたい。タブ2は実際にはタブ1に依存してコンテンツを変更する必要があるため、最良の方法はロードイベント(タブごと)ではなく、タブ全体を一度にリメイクすることです(#タブのコンテンツを置き換える)。または私の問題をどうやって解決するか考えてみましょうか? – xekaiforce

関連する問題