2011-08-16 49 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