从函数(咖啡脚本)内以定时间隔触发函数

Fire function at timed interval from within an function (coffeescript)

本文关键字:函数 定时间 咖啡 脚本      更新时间:2023-09-26

我有一个函数,可以用javascript平衡旧浏览器上的元素高度。问题是由于 ajax 内容,我必须以 3 秒左右的间隔运行该函数。我不能在内容更新中使用回调函数,因为它内置到我无法触摸的 CMS 中。

我有以下咖啡脚本文件:

class window.ApplicationController
  constructor: ->
    #fire code
    @equalColumnHeight()
  #......
  equalColumnHeight: ->
    console.log "equal height"
    colLeft = 0
    if @browserwidth > 1024
      colLeft = (@columnPageTreeNav + @columnSidebarA)
    colHeight = Math.max(colLeft, @columnPageTreeNav, @columnContent, @columnSidebarA, @columnSidebarB)
    $("#content, #sidebar_a, #sidebar_b").height colHeight
    $("#sidebar_a").css "top", (@columnPageTreeNav + 190)

我最初的想法是以这样的间隔触发函数:

class window.ApplicationController
  constructor: ->
    #fire code
    @equalColumnHeight()
    setInterval @equalColumnHeight(), 3000
  #......
  equalColumnHeight: ->
    colLeft = 0
    if @browserwidth > 1024
      colLeft = (@columnPageTreeNav + @columnSidebarA)
    colHeight = Math.max(colLeft, @columnPageTreeNav, @columnContent, @columnSidebarA, @columnSidebarB)
    $("#content, #sidebar_a, #sidebar_b").height colHeight
    $("#sidebar_a").css "top", (@columnPageTreeNav + 190)

但这行不通,有什么想法吗?

setInterval (=> @equalColumnHeight()), 3000

setInterval接受第一个参数的函数,但传递的结果是equalColumnHeight