2013-02-02 50 views
-1

所以基本上我有n個div來存放註釋,就像在facebook上一樣,而在jquery中我有一個運行ajax調用的函數來獲取每個div的註釋,至少這就是我想要的要做的,它只提取頁面上第一個div的註釋,我該如何讓這個函數同時爲每個div運行?對每個div應用函數

下面是代碼:阿賈克斯

interval = setInterval(function(){ 
    comment_id = $("#main-photo"+k).attr("commentid"); 
    k = $("#main-photo"+k).attr("nr_crt"); 
    $.post('../utility/countcomm.php', { comment_id: comment_id } , 
     function(output) { 
      if (+total1 < +output) 
       total1 = output; 
      if (+total1 > +total2) 
      { 
      $.post('../utility/fetchcomments.php', { comment_id: comment_id, start:total2, end:total1 } , 
       function(output1) { 
        $(".comment_append"+k).append("<p class='comment'>"+output1+"</p>"); 
        var scrolldown = $('.comment_append'+k)[0].scrollHeight; 
        $('.comment_append'+k).animate({scrollTop:scrolldown}, 200); 
       }); 
      total2 = total1; 
      } 
     }); 
},100); 

HTML:

<div id="comment_box"> 
    <input type="text" name="comment" id="type_comment" value="Type a comment." /> 
    <div id="comment_append" class="comment_append<?php echo $k; ?>"> 

    </div><!--comment_append end--> 
    <img id="main-photo<?php echo $k; ?>" nr_crt="<?php echo $k; ?>" class="main-photo" src="<?php echo $user_uploads['pic1'] ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" commentid="<?php echo $user_uploads['comment_id']; ?>"/> 
</div><!--comment_box end--> 

每個div有在PHP動態分配不同的ID。 謝謝。

+3

把一個普通的類給所有的div的話,一般給所有的div分配ajax函數..可能會有這個幫助 – sourcecode

+0

讓我看看這個更多... – southpaw93

回答

1

當我正確地閱讀/理解你的代碼時,你想要尋找所有類的主要照片,獲得紀念和更新相關的div?在這種情況下,你需要在與該類別的所有圖像的循環:

interval = setInterval(function(){ 
    // loop over all images with the class 
    $(".main-photo").each(function() { 
     // get the comment_id and k (the unique part of the id) 
     var $element = $(this), 
      comment_id = $element.attr("commentid"), 
      k = $element.attr("nr_crt"); 
     // the rest is unchanged... 
     $.post('../utility/countcomm.php', { comment_id: comment_id } , 
     function(output) { 
      if (+total1 < +output) 
       total1 = output; 
      if (+total1 > +total2) 
      { 
      $.post('../utility/fetchcomments.php', { comment_id: comment_id, start:total2, end:total1 } , 
       function(output1) { 
        $(".comment_append"+k).append("<p class='comment'>"+output1+"</p>"); 
        var scrolldown = $('.comment_append'+k)[0].scrollHeight; 
        $('.comment_append'+k).animate({scrollTop:scrolldown}, 200); 
       }); 
      total2 = total1; 
      } 
     }); 

    }); 
},100); 

順便說一句,你應該想想你的定期刷新設置(100毫秒),會產生一個巨大的服務器請求的數量。根據數據量,它可能會導致一些問題。

+0

它的工作原理是:D謝謝。 – southpaw93