私はjqueryの初心者ですが、私のプロジェクトでそれを使用しようとしています。 #rate_box内のすべてのリンクをループしてクリックイベントを追加しようとしています。このクリックイベントは、外部のPHPスクリプトにデータを投稿し、すべてのリンク上でクリックイベントをバインド解除する必要があります(ユーザーが2回連続して評価することはできません)。その後、PHPスクリプトから受け取ったデータを#statusと呼ばれるスパンタグ。Jquery各ループが機能しない
しかし、私のコードではアラート( "Index:" + i)も実行されません。私はそれを正しく縛っていますか?
<script type="text/javascript">
$(document).ready(function(){
$('#rate_box a').each(function(i) {
$(this).click(function() {
alert("Index: "+i);
$.post("../includes/process/rating.php", {id: "<?php $game_id ?>", type: "game", rating: i+1},
function(data) {
$('#rate_box a').each(function(i) {
$(this).unbind('click');
}
$('#status').html(data).fadeIn("normal");
});
});
});
});
</script>
は私がバインドされている個々のもののインデックスを知っている必要があります(それは次のようになります0-5)Ajaxがそのデータを外部スクリプト(これは5つ星評価システム)に投稿するので、 – Tom
これを達成する方法を示すために私のコードを更新しました。 –
もしあなたが 'var links = $( '#rate_box a');' '$(links).click(...'の代わりにlinks.click(... 'リンク)は、関数内のリンクだけにリンクします。リンクは、jqueryオブジェクトであるグローバル変数です。 –