在 Coffeescript + Jquery 文件中延迟函数调用

Delay a Function Call within Coffeescript + Jquery File

我在 Rails 项目的 Ruby 中有一个 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 函数不会在 window 内延迟,而是在其他地方延迟。不太确定。

感谢任何帮助:)

I also tried using 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