2012-03-19 9 views
0

からクラスにトリガされたときに動作していない私は、印刷てるリスト:friend_list.phpでオーバーレイこのJavaScriptを使用してJavaScriptの印刷されたタグ

<script type="text/javascript"> 
    $(document).ready(function(){ 

     function hide(){ 
     $('#friend_list').fadeIn(100); 
     $('#friend_list').load("friend_list.php"); 
     }; 

     setInterval(hide,100); 

    }); 

</script> 

私は、ユーザーに関連するすべてのレコードを取得し、同じようにそれを返しますよこの:

echo "<div class='friend' id='friend'>" . $a["username"] . "<input type='hidden' value='$id'/>" . "</div>"; 

そして、私はオーバーレイを作るために、この単純なスクリプトを使用しています:

<script type="text/javascript"> 
$(document).ready(function(){ 
function overlayerOn(){ 
    $('#overlayer').fadeIn(800); 
} 

function overlayerOff(){ 
    $('#overlayer').fadeOut(800); 
}; 

$('#board').click(function(e){e.stopPropagation();}); 

$('.friend').click(function(e){ 
    e.preventDefault(); 
    overlayerOn(); 
    var $br = $('#board'); 
    $br.css('display', 'block'); 
    }); 

$('#overlayer').click(function(e){ 
    overlayerOff();}); 
}); 
</script> 

オーバーレイは、friend_list.phpで使用されているIDやクラス以外のIDやクラスでトリガーしている限り動作します。しかし、それは私が必要なものです。クラス.friendによってトリガされたときにオーバーレイが動作しない理由は何ですか?あなたはjqueryのの最新バージョンを使用している場合 が...

答えて

2

使用(ライブが推奨されません)

$('.friend').live('click', function(e){ 
    // your code 
}); 

ありがとう、あなたが

を使用してコンテンツを動的にロードしているので、それが起こって

$('body').on('click', 'div.friend' , function(e){ 
    // your code 
}); 

を使用

$('#friend_list').load("friend_list.php"); 

これらのコンテンツはDOMがロードされていないときはDOMにはありません。

+0

本当にありがとうございました。あなたが私を助けてくれた原因がたくさんあります。そして、インターバルを100から2000に変更しました。なぜなら、それは何度も働かなかったからです。私はそれが時々開かれ、時にはそれがしなかったその間隔のためだと思います。とにかくありがとうございました。 :) –

+0

あなたは大歓迎です。 :-) –

+0

私は質問があります。隠された入力値をどのように取って、それを別のPHPスクリプトに送るためにスクリプトにプッシュしますか?ところで、英語に申し訳ありません.. :) –

関連する問題