2011-08-16 47 views
1

我想創建一個包含每天下的項目7天的傳送帶。當按下下一個按鈕時,jquery查找表格<span class="date">DATE</span>的最後一個span元素,抓取該值並將其傳遞給服務器以獲取接下來的3個條目。然後將這些條目附加到<ul class="week">元素上,整個7天向右滑動3個增量。我的第一個問題是,在第一次點擊後,jquery似乎沒有看到動態生成的內容,只是將初始日期值發送到服務器,使其重複這3個日期。第二個問題是點擊足夠長的時間後,它會停止生成新內容,並且無法將內容添加到最後,即使服務器仍然會在當天吐出html ..我是初學者,可能沒有最佳做法想通了。這裏是我的初步認識代碼:解決jquery無法看到爲無限傳送帶生成的項目

 $('.next').click(function() { 
    var date = $(".date").filter(':last').text() //grab the last date class and parse into url to send to server 
    $.get('/log_entries/ajaxdate/'+date, function(data) { 
     $('.week').append(data); 
    }); 
    $('.test').animate({left: '-=272px'}, 500); 

}); 

好了第一個問題,從服務器發回的數據未包含各地日期跨度元素,日期現在可以正確地增加謝謝@ RoccoC5

我還是結束一旦我的身高足夠高,在2011年10月26日2011-08-15開始時,隨機抽出一些項目。

下面是從服務器發回的代碼時log_entries/ajaxdate/2011-09-12加載:

<li class = "entry"><span class="date">2011-09-13</span> 
</li> 
<li class = "entry"><span class="date">2011-09-14</span> 
</li> 
<li class = "entry"><span class="date">2011-09-15</span> 
</li> 
+1

您可以添加一些示例標記,以便我可以更好地瞭解您正在使用的是什麼?從服務器返回的標記是否包含新的' DATE'元素? – RoccoC5

+0

你是對的我完全忘了把我的''放入從服務器發回的代碼中。一段時間後仍然有下一個按鈕無法生成新條目的問題。上面添加了標記,謝謝! – Graeme

+0

嘗試'$(「。week .entry:last-child .date」)'看看是否有效 –

回答

0

如果響應是純HTML,你應該把它轉換爲DOM元素,使用$(data)

$.get('/log_entries/ajaxdate/'+date, function(data) { 
    $('.week').append($(data)); 
}); 

或innerHTML的工作,只是一個例子:

var jweek = $('.week'); 
jweek.html(jweek.html() + data); 

你SH也烏爾德使用.closest().find(),以確保你有一個轉盤工作,並沒有選擇從頁面的其他.data.next元素:

<div class="carousel"> 
    <ul class="week"> 
     <li class="entry"><span class="date">2011-08-16</span></li> 
    </ul> 
    <a href="..." class="next">Next</a> 
</div> 

$('.carousel .next').click(function() { 
    // find the parent .week and then .date inside of it 
    var date = $(this).closest('.week').find('.date:last').text(); 
    ... 
}); 

注意.filter(':last')可以被壓縮到以前的選擇。

+0

這會清理它但是當我走得夠遠的時候,我仍然缺乏足夠的條目。感謝代碼!關於爲什麼它會停止加載新條目的任何想法?有沒有我沒有意識到的事情或事情的最大大小? – Graeme

+0

不,沒有。我不知道哪裏出了問題,這是一個調試工作。使用Chrome開發人員工具,放置斷點並查看發生了什麼事件,什麼事情不發生,服務器是否發送正確的數據,事件處理程序是否正確運行。如果你發佈了這些數據,那麼有人可以在這裏幫助你。 –

+0

好的使用開發人員工具,我可以找到,查看網絡選項卡,當呼叫到達停止添加條目的位置時,狀態/文本列從304更改/未修改過200/OK這必須是這個問題,但林不知道爲什麼。奇怪的是,當我繼續點擊下一個按鈕時,日期不斷增加,這意味着它必須看到一個我沒有看到的元素,但狀態已經改變爲200。/OK – Graeme