2012-03-23 9 views
1

#####解決済み##### 私はJavaScriptの更新setInterval( "..."、1000)を持っていました。エラーの原因となったソースコード内にあります。あなたの助けをありがとう!jQueryの.load()関数は1回だけ呼び出されます。

HTML

<div class="stackwrapper" id="user1"></div> 
<div class="stackwrapper" id="user2"></div> 
<div class="userdrawings"></div> 

javascriptの

$('.stackwrapper').click(function(e){ 
var id=$(this).attr('id'); 
$('.userdrawings').load('loadSession.php?user='+id).fadeIn("slow"); 
}); 

はどういうわけか、それが唯一のみstackwrapper上の最初のクリック、私は二番目をクリックすると、機能がトリガされていないで、一度に動作します再び。

+0

は、あなたのコンソールにエラーメッセージが表示されますか? – m90

+0

エラーを発生させる何かがあるようです。レスポンスに失敗したJavaScriptコードが含まれていますか(デフォルトではJavaScriptを含む 'load()'が実行されます)? – acme

+1

あなた自身の解決策を見つけた場合は、それを回答として投稿し、それを受け入れて、他の人が見つけやすいようにする必要があります。 – Gaffi

答えて

0

は、内側に配置しよう

$(document).ready(function(){ 
//place the above code here. 
}); 
+1

ドキュメントが用意されていない場合は、一度実行してもそれはありません。 – defau1t

+0

ありがとう、私はすでにそれをしました。私はそれが一度動作すると言ったように! –

0

<?php 
if (isset($_GET['user'])) { 
    echo '<span>user=', htmlspecialchars($_GET['user']), '</span>'; 
    die; 
} 
?> 
<html> 
    <head> 
     <title>...</title> 
     <style type="text/css"> 
      .stackwrapper { width:100px; height: 100px; margin: 5px; background-color: red } 
     </style> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('.stackwrapper').click(function(e) { 
        var id=$(this).attr('id'); 
        $('.userdrawings').load('?user='+id).fadeIn("slow"); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <div class="stackwrapper" id="user1"></div> 
     <div class="stackwrapper" id="user2"></div> 
     <div class="userdrawings"></div> 
    </body> 
</html> 

あなたは、例えばのように、JavaScriptデバッガを使用する場合があります。この自己完結型の例で問題を再現することはできませんfirebugに含まれており、エラーを確認してください。

+0

ありがとう、間違いを見つけた! –

1

今、私はそれを得る、それはあなたがajax呼び出しを行っているからです。あなたの質問にお答えするのはa linkです。

+0

これは、バウンド要素が変更されていないので、ここで何が起こっているのかについては言及していません: '$( 'a')を呼び出すと、呼び出されたときにページ上のすべてのリンクが返され、.click(fn )は、それらの要素にのみハンドラを追加します。新しいリンクが追加されても、影響を受けません。詳細はAJAXとイベントチュートリアルを参照してください。 – m90

+0

「stackwrapper」クラスは2つしかありません。私には解決策があります。 .loadの後に関数を呼び出します。 function2()..あなたは同じコードを入れた関数を作成します。 load( 'loadSession.php?user ='); $( '。stackwrapper')をクリックします。 + id).fadeIn( "slow"); }); –

+0

よくあるご質問は、AJAX経由でコンテンツを読み込むと、新しく作成された要素は '$(document)で宣言されたイベントハンドラに自動的にバインドされません。準備完了() ' - これはここで間違っているようではありません – m90

0

あなたは、ドキュメントレベルでそれを入れてみてください:それは私のコンピュータ上でうまく動作しながら、それは、奇妙だ

$(document).on('click', '.stackwrapper', function(e) { 
    var id = $(this).attr('id'); 
    $('.userdrawings').load('loadSession.php?user=' + id).fadeIn("slow"); 
}); 
0

。クリックするたびに変更されます。 これは私のコード

htmlです

<div class="stackwapper" id="user1">user1</div> 
<div class="stackwapper" id="user2">user2</div> 
<div class="userdrawings"></div> 

JS

$(document).ready(function(){ 
$(".stackwapper").click(function(e) { 
     var id = $(this).attr('id'); 
     $(".userdrawings").load("user_session.php?user="+id).fadeIn("slow"); 
    }); 
}); 

user_session.php

$user=$_GET["user"]; 
echo "hello " . $user; 
関連する問題