2012-01-30 80 views
2

所以有一天,我問了一個關於Stackoverflow的問題並得到了答案。但顯然在經過這段時間的努力後,我無法找到解決方案。我在Chrome和Safari中使用的代碼,但在Firefox和IE中無法使用。jQuery .bind(滾動)功能在Firefox中不起作用

任何人都可以告訴這個代碼有什麼問題嗎?

$(window).bind('scroll', function() { 
     if ($('body').scrollTop() + $(window).height() >= $('#cooler-nav').offset().top){ 
     $.colorbox({width:"700px", inline:true, href:"#subscribepop"}); 
     $(window).unbind('scroll'); 
     } 

}); 

基本上我們的目標是讓這個顏色框啓動,一旦用戶觀看DIV#冷卻器導航...

回答

3

滾動事件不會傳播了DOM樹。嘗試綁定在「身體」滾動,而不是窗口滾動,看看是否爲你修復它。

編輯︰我回去檢查我的代碼,我必須在過去這樣做,並意識到我得到它倒退。當我在過去完成時,我使用了$(window).scrollTop()而非body。所以,這會讓你的代碼看起來象:

$(window).bind('scroll', function() { 
    if ($(window).scrollTop() + $(window).height() >= $('#cooler-nav').offset().top){ 
    $.colorbox({width:"700px", inline:true, href:"#subscribepop"}); 
    $(window).unbind('scroll'); 
    } 
}); 
+0

這並不在任何工作的瀏覽器。 – 2012-01-30 15:06:41

+0

根據我過去爲此問題所做的更新答案。 – PriorityMark 2012-01-30 19:14:53

+0

甜蜜的工作。非常感謝:)我真的很感激它。 – 2012-01-30 21:21:09

0

你應該改變你的if子句檢查scrollTop的關於「身體,HTML」,使其工作在FF

+0

這樣做可以在Firefox中工作,但它在Chrome和Safari中停止工作。在IE中根本不起作用。 – 2012-01-30 14:56:08

+0

請仔細檢查您是否使用了「body,html」或「body」,「html」。前者應該同時工作,後者應該產生你描述的行爲 – Semyazas 2012-01-30 15:39:46

+0

只需雙重檢查。 'body,html'<<它在Firefox中可用,但不適用於Chrome等。 使用'body','html'可以在Chrome中工作,但不能在Firefox中工作。 – 2012-01-30 15:58:28