Задержка вызова функции в файле Coffeescript + Jquery - PullRequest
0 голосов
/ 17 мая 2019

У меня есть файл Coffeescript + Jquery в проекте Ruby on Rails, к которому я хочу добавить функцию задержки. Я экспериментировал с 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 не задерживается в окне, а скорее где-то еще.Не уверен, что.

Любая помощь приветствуется:)

1 Ответ

2 голосов
/ 17 мая 2019

Я также пытался использовать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...