if语句为true但不进入该块

时间:2018-09-23 22:04:48

标签: coffeescript

这是我的咖啡脚本:

jQuery ->
if $('#infinite-scrolling').size() > 0 
  $(window).on 'scroll', ->
    window_top = $(window).scrollTop()
    doc_height = $(document).height()
    window_height = $(window).height()
    window_bottom = window_top + window_height
    scroll = window_bottom / doc_height > 0.9 
    next_page = $('.next_page').attr('href')
    console.log(next_page)
    console.log($('#infinite-scrolling').size() > 0)
    if next_page && scroll
      $.getScript next_page
    return
return

尽管if中的语句应该为if,但它并没有进入true块,因为当我删除if时,我可以在控制台中看到它的内容true通过此行:

console.log($('#infinite-scrolling').size() > 0)

有人知道我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

if语句看起来不错。 修复缩进后,代码对我有用,除了.size()在最新的jquery(3.3.1)中已弃用。我将其替换为.length。 但是如果没有您的HTML,我将无法测试第二个if块。

您确定没有抛出任何错误吗?

这是我的版本:

jQuery ->
  if $('#infinite-scrolling').length > 0 
    $(window).on 'scroll', ->
      window_top = $(window).scrollTop()
      doc_height = $(document).height()
      window_height = $(window).height()
      window_bottom = window_top + window_height
      scroll = window_bottom / doc_height > 0.9 
      next_page = $('.next_page').attr('href')
      console.log(next_page)
      console.log($('#infinite-scrolling').length > 0)
      if next_page && scroll
        $.getScript next_page
      return
return

这里是codepen