2013-06-19 144 views
3

我打算加載額外的內容滾動到div的底部,但一直到目前爲止無法使jQuery檢測滾動到底部。我知道這裏有很多問題要求相同..但是沒有一個解決方案適用於我。我顯然做了一些錯誤的事情,但在這方面做出新的事情卻搞不清楚。這裏是代碼:檢測到動態頁面上的滾動到底部

<html> 
<head> 

<script src="jquery-1.10.1.min.js"> 
</script> 

<script> 
$(document).ready(function(){ 
    var n1=0; 
    var n2=5; 
    var $win = $(window); 
    $("#page").change(function(){ 
     var str=$(this).val() 

     console.log(str); 
     if(str.length===0){$("#rssoutput").html("");} 
     else 
     {$("#rssOutput").load("http://dodomain.uni.me/getrss.php?q="+str+"&n1="+n1+"&n2="+n2);} 

    }); 
    $(window).scroll(function() { 
     if (document.documentElement.clientHeight + $(document).scrollTop() >= document.body.offsetHeight) 
     { 

      alert("bottom of the page."); 
     } 


    }); 

}); 

</script> 


</head> 
<body> 

<form> 
<select id="page"> 
<option value="">Select an RSS-feed:</option> 
<option value="Google">Google News</option> 
<option value="cyanide">cyanide and happiness</option> 
<option value="oglaf">Oglaf</option> 
<option value="xkcd">xkcd</option> 
<option value="wired">wired.com</option> 
</select> 
</form> 
<br> 
<div id="rssOutput" >RSS-feed will be listed here...</div> 
</body> 
</html> 

我可能提供了比需要更多的代碼..但我不確定問題是否在其他地方。 PHP只是發送生成一些HTML關閉RSS飼料。它在這裏在線http://dodomain.uni.me/rss.html

編輯:代碼工作當div的內容是靜態的(即通過AJAX沒有加載)這裏http://jsfiddle.net/jkh5P/

回答

0

問題是瀏覽器返回窗口高度和文檔高度的相同值,除非在HTML中提及了doctype。添加<!DOCTYPE html>到html解決了這個問題。這就是爲什麼它在jsfiddle等而不是在我的網站上工作。

0

證明此代碼確實對我的工作 - 我只是拉出$(窗口).scroll(~~~~),並將其插入Chrome控制檯,它對我來說一切正常。我還把你發佈的所有內容都作爲HTML文件打開。似乎按照預期工作與一個警告:

如果文檔不滾動(適合在窗口內),滾動是/將永遠不會被調用對於這一點,我會說你的$(窗口).scroll(這個東西)變成一個新的函數,並且在$(document).ready事件中調用它。

+0

多數民衆贊成在奇怪..因爲它不工作在這裏。而且它也不適用於http://dodomain.uni.me/rss.html。我看到你關於不可滾動文檔的觀點。我會爲此做點什麼。 – thekindlyone

+0

我在FF和Safari中試過它,它也可以工作 - 只在IE中失敗。不知道問題是什麼,那麼 - 對不起! – Ledivin

+0

我發現了這個問題..但仍然沒有接近解決方案。你會發現文件高度和窗口高度每次都是相同的。也就是說,它們在ajax加載之前是什麼樣的。我無法弄清楚如何獲得新的價值。 – thekindlyone