2011-01-08 11 views
0
<script type="text/javascript"> 
var auto_refresh = setInterval(
function() 
{ 
$('#data').load('data.php'); 
}, 10000); 

$(".banit").click(function() { 
var namer= $(this).val(); 
alert(namer); 

}); 

</script> 

data.phpからのデータがidデータ付きのdivに10秒ごとにロードされます このデータにはbanitクラスのボタンがあります(ループされ、エコーされます)。ボタンのbanitには値があります。この値には警告が必要です。jquery問題。リロード後

このページが開いたら、このボタンは機能し、正常に通知されます。一旦データがリロードされると、それは動作を停止します! 助けてください!

答えて

3

$('#data').load('data.php');を呼び出すと、ボタンとそのクリックハンドラを含む#dataの子要素がすべて破棄されます。

あなたは、新しいコンテンツをロードした後、クリックイベントを再バインドまたはliveを使用するかがあります。liveが結合した

$(".banit").live('click', function() { 
    var namer= $(this).val(); 
    alert(namer); 
}); 

イベントハンドラは、現在のすべての将来のDOM要素のために動作します。

0

piquadratのように、毎回ハンドラを再バインドする必要がありますが、私はむしろpaul irishがここで言うように "delegate"メソッドを使用したいと思います:http://www.slideshare.net/paul.irish/perfcompression(スライド34から38)。