我正在实现受本教程严重影响的无限滚动效果:
http://railscasts.com/episodes/295-sharing-mustache-templates?view=asciicast
但是,我的做法略有不同,因为我在前端使用了 Jquery Masonry (http://masonry.desandro.com/demos/adding-items.html)。
无论如何,当我按如下方式实现时:
jQuery ->
window.endlessScroll = () ->
if $('#products_page').length
new ProductPager
class ProductPager
constructor: ->
$(window).scroll(@check)
check: =>
if @nearBottom()
$(window).unbind('scroll', @check)
$.getJSON($('#products_page').data('json-url'), @render)
nearBottom: =>
$(window).scrollTop() > $(document).height() - $(window).height() - 150
render: (products) =>
boxes= []
$container = $('#products_page')
for product in products
boxes.push Mustache.render $('#mustache_product').html(), product
$container.append(boxes).masonry "appended", boxes
$(window).scroll(@check)
我收到以下错误(Chrome):
未捕获的错误:NOT_FOUND_ERR:DOM 异常 8
我认为问题出在这里:
boxes.push Mustache.render $('#mustache_product').html(), product
因为这将每个模板输出包装在“引号”中,即
["<div>stuff</div>","<div>more stuff</div>"]
而不是:
[<div>stuff</div>,<div>more stuff</div>]
但是我对自己做错了什么有点精神障碍……有人愿意帮忙吗?