0

jquery .load() を使用してロードされたコンテンツで、両方とも数秒ごとに自動更新される 2 つの div があります。

    <script>
    $(document).ready(function(){$("#a1").load("a1.php");
    var refreshId=setInterval(function(){
$("#a1").load('a1.php?randval='+Math.random());},10000);$.ajaxSetup({cache:false});});

    $(document).ready(function(){$("#b2").load("b2.php");
    var refreshId=setInterval(function(){
$("#b2").load('b2.php?randval='+Math.random());},20000);$.ajaxSetup({cache:false});});
    </script>


<div id='a1'></div>
<div id='b2'></div>

jqueryでdiv a1のコンテンツを操作できるようにするには、div b2にコンテンツを挿入する必要があります..

例: div 1 a1.php にロードされたコンテンツ

<span class="test">Hello World</span>

例: div 2 b2.php に読み込まれたコンテンツ

<script type="text/javascript">
$(document).ready(function(){
$('.test').text('Good Bye cruel world');
});
</script>

しかし、これはうまくいかないようです...それが理にかなっていることを願っています..何かアイデアはありますか?

4

1 に答える 1

1

$(document).ready... コードは、ロードが後で完了するため、.load() が完了する前に実行されています。これは、実行時にクラス「test」のスパンがまだないことを意味します。

最初のロード (a1 へのロード) が完了した後で、2 番目のロードを実行する必要があります。この目的のために、 load は、ロードが完了したときに呼び出す関数を渡すことができます ( jQuery load documentation ):

$("a1").load("contentLocation.php", null, function () {
  $("a2").load("nextContentLocation.php");
});

これにより、jQuery はコンテンツを a1 にロードし、完了時にコンテンツを a2 にロードします。

于 2012-06-20T13:21:20.610 に答える