我在Ruby on Rails项目中有一个Coffeescript + Jquery文件,我想向其中添加延迟功能,我一直在尝试setTimeout,但我什么都无法工作,这是代码...
products.coffee
$ ->
if $('.pagination').length && $('#products').length
$(window).scroll ->
url = $('.pagination .next_page').attr('href')
if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
$('.pagination').text("Loading more products...")
$.getScript(url)
$(window).scroll()
$。getScript(url)行是我想要延迟调用5秒钟的行,我尝试过在该行之前放置setTimeout函数调用,也尝试使用setTimeout($。getScript(url),5000)和没有任何效果。由于这是Coffeescript + Jquery,因此我在网上找不到很多。
我相信setTimeout函数不会在窗口内延迟,而是在其他地方延迟。不确定。
我们将不胜感激:)
答案 0 :(得分:2)
我也尝试使用setTimeout($。getScript(url),5000)
那是因为您没有正确使用setTimeout。
签名为setTimeout(FUNCTION, TIME)
您需要在此处传递实际函数,但您传递的是$.getScript(url)
,这是调用函数的结果(不是函数本身) )。
相反,您可以简单地将getScript调用包装在匿名函数中:
setTimeout ->
$.getScript(url)
, 5000
# or, one liner if you prefer
setTimeout (-> $.getScript(url)), 5000