2010-11-25 20 views
2

投票ボタンをクリックするたびにajax-loader gifをロードしています。ただし、画像はすべての項目に表示されます。私は投票したアイテムのイメージをロードする方法を見つけようとしています。これは私のコードです。Jqueryは個々の要素のhtml()を追加します

$(document).ready(function(){ 
    $(".vote").click(function(e) { 
     $('.ajax_load').html('<img src="/images/ajax-loader.gif" />'); 
     var item_id = $(this).attr("id"); 
     var dataString = 'item_id=' + item_id; 

    $.ajax({ 
     type: "POST", 
     url: "vote.php", 
     data: dataString, 
     cache: false, 
     success: function(html) { 
    $('.ajax_load').html('Voted!'); 
     } 
    }); 
    return false; 
}); 
}); 

HTMLサンプル

<div class="vote" id=88">Vote</div> <div class="ajax_load"> 
<div class="vote" id=92">Vote</div> <div class="ajax_load"> 
<div class="vote" id=38">Vote</div> <div class="ajax_load"> 
+0

クラス 'ajax_load'には多くの項目がありますか?もしそうなら、HTML(*構造*)を見る必要があるので、その特定の項目にフィルタをかける方法を見ることができます。(*また、なぜ投票タグセレクタを使用していますか?無効です*) –

+0

HTMLのサンプルでは、​​どのようなhtmlを使用しているのかわかりますか? –

+0

確かに申し訳ありません! – Rambo

答えて

2

が、それはあなたが使用する必要がありますので、要素が兄弟であるように見える

$(this).nextAll('.ajax_load:first').html('<img src="/images/ajax-loader.gif" />'); 

画像を表示する。成功コールバックで

特定のターゲットに

$('#' + item_id).nextAll('.ajax_load:first').html('Voted!'); 

を使用するには、要素を投票しました。

+0

これはメイトです!ありがとうございました!私はドキュメンテーションを見て、あなたのコードがどのように機能するかを学びます – Rambo

0

.ajax_loadは投票の子であると仮定すると、

$("vote").click(function(e) { 
    $(this).html(...); 
0

を試みるが、あなたはこれを変更することができます

$('.ajax_load').html('<img src="/images/ajax-loader.gif" />'); 

へ:

$(this).find('.ajax_load').html('<img src="/images/ajax-loader.gif" />'); 

これは、クリックされた投票の子であり、すべてではなく、その子のみである.ajax_loadに影響します。

あなたのajax呼び出しと同じことです。私は$(this)がまだクリックされた "投票"を参照するべきだと信じています。

$('.ajax_load').html('Voted!'); 

$(this).find('.ajax_load').html('Voted!'); 

編集オーケー...となり、そのHTML与えられ、これを行うにはいくつかの方法があります。私はおそらくそれをこのように行うだろう:あなたはjQueryのを使用してdiv要素を選択する方法を理解しようとしている場合、一般的に

$(this).next('.ajax_load:first')... <- do whatever you'll do with the selection. 

を見るには絶好の場所にはtraversingselectingのためのjQueryのドキュメントです。

+0

ありがとうコードです!これは完全に.vote divのために動作しますが、私はajax-loaderをロードしています。別の部門のGIF。私はいくつかのHTMLサンプルを追加しました – Rambo

+0

@Rambo答えを編集し、今すぐ動作するはずです。 –

+0

コードはまだ動作しませんが、私はリンクが非常に有用であることを発見しました!私はjqueryを使用してそれぞれが動作すると思う – Rambo

関連する問題