2010-11-25 5 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에만 영향을 주며 그 중 일부는 적용되지 않습니다.

아약스 호출과 똑같습니다. 나는 $(this)가 여전히 클릭 된 "투표"를 참조해야한다고 생각합니다.

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

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

편집 좋아 ...이되다, 그 HTML 주어,이 작업을 수행하는 몇 가지 방법이있다. 나는 아마 이런 식으로 할 것이다 : 당신이 jQuery를 사용하여 사업부를 선택하는 방법을 알아 내려고 노력하는 경우, 일반적으로

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

을 볼 수있는 좋은 장소가 traversingselecting에 대한 JQuery와 문서입니다.

+0

코드를 보내 주셔서 감사합니다! 이것은 .vote div에 완벽하게 작동하지만 저는 ajax-loader를로드하고 있습니다.다른 div의 gif. 일부 HTML 샘플을 추가했습니다. – Rambo

+0

@Rambo 답변을 수정 했으므로 지금 작동해야합니다. –

+0

코드가 여전히 작동하지 않지만 링크가 매우 유용하다는 것을 알았습니다! 나는 각각 jquery를 사용하여 작동한다고 생각한다. – Rambo

관련 문제