2016-08-19 27 views
2

我這2段代碼jQuery的觸發器('調整大小')函數只能工作一次嗎?

function fixFooter() { 
    var wrapper = $('#disqus_wrapper').height(); 
    if (wrapper > 200) { 
     $(window).trigger('resize'); 
    } 
}; 

var element = $('#disqus_wrapper'); 
new ResizeSensor(element, function() { 
    fixFooter(); 
}); 

的預期效果是窗口將調整每次的div#disqus_wrapper改變高度的時間。 (修復評論和頁腳重疊)

那麼,代碼的工作原理,但只有一次頁面加載後。我需要它調整每次div變化的高度。我嘗試用警報切換觸發器('調整大小')功能,一切正常。任何想法爲什麼觸發器('調整大小')只能工作一次,我該如何解決它?

更新;

的HTML僅僅是這一點,因爲我加載Disqus評論系統

<div id="disqus_wrapper"><div id="disqus_thread"></div></div> 

爲了檢測在div高度變化,我使用這個庫 https://github.com/marcj/css-element-queries(在ResizeSensor.js)

+1

向我們展示您的事件監聽器。 – eisbehr

+0

@eisbehr,我使用https://github.com/marcj/css-element-queries來檢測高度變化。檢測工作正常,當我使用alert()時,每當div改變高度時它就會啓動。但是當我使用$(window).trigger('resize')時,它只會工作一次。 – Askaoru

+0

發佈您的Html和事件監聽器請@Askaoru –

回答

0

您需要在窗口大小調整事件中調用您的函數fixFooter()

$(window).resize(function() { 
     fixFooter(); 
    }); 
+0

不起作用:(它給了我'未捕獲的RangeError:超過最大調用堆棧大小' – Askaoru