0

JavaScriptを使用して古いブラウザで要素の高さを均等にする機能があります。問題は、ajax コンテンツのために、その関数を 3 秒間隔で実行する必要があることです。コンテンツの更新でコールバック関数を使用することはできません。これは、触れることができない CMS に組み込まれているためです。

次のcoffeescriptファイルがあります:

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)

しかし、それはうまくいきません。

4

1 に答える 1

2
setInterval (=> @equalColumnHeight()), 3000

setInterval最初の引数に関数を受け入れますが、の結果を渡しますequalColumnHeight

于 2012-08-09T09:18:12.607 に答える