[英]Uncaught ReferenceError, my function is not defned
我正在創建一個動態滾動div,它在Jsfiddle上工作正常,如此處所示-> http://jsfiddle.net/9zXL5/19/embedded/result/但在瀏覽器上卻得到了:
未被捕獲的TypeError:無法將屬性'onscroll'設置為null
因此,我在代碼中添加了$(document).ready(function (){
未捕獲的ReferenceError:yHandler未定義
我不明白為什么我會收到這些錯誤,卻在jsfiddle上流暢地運行。 如果有人能告訴我我不了解或缺少的內容,我將非常感激。 有問題的代碼如下
var movelist = document.getElementById('movelist');
$(document).ready(function (){
function yHandler (){
var contentHeight = movelist.scrollHeight;
var yOffset = movelist.clientHeight;
var y = yOffset + movelist.scrollTop;
if(y >= contentHeight){
movelist.innerHTML += '<div class ="newData">hey look at me</div>';
}
}
});
movelist.onscroll = yHandler;
放
var movelist = document.getElementById('movelist');
和
movelist.onscroll = yHandler;
在您的document.ready調用中。
或者,擺脫document.ready調用(無論如何似乎都沒有jQuery),然后將代碼放在文檔末尾的腳本塊中,位於結束body標記之前。
您需要在標簽$(document).ready(function (){...});
之外定義函數$(document).ready(function (){...});
它正在您的小提琴中工作,因為所有內容都在同一范圍內。 您在$(document).ready
之外聲明了movelist
。 移動var movielist = ...
和movielist.onscroll = yHandler;
在$(document).ready
。
您還可以將yHandler
函數移至$(document).ready
。
您應該將所有代碼移到onload處理程序中
$(document).ready(function (){
var movelist = document.getElementById('movelist');
function yHandler (){
var contentHeight = movelist.scrollHeight;
var yOffset = movelist.clientHeight;
var y = yOffset + movelist.scrollTop;
if(y >= contentHeight){
movelist.innerHTML += '<div class ="newData">hey look at me</div>';
}
}
movelist.onscroll = yhandler
});
現在,您的yhandler
與使用它的地方在同一范圍內。 在您的示例中,它被定義為內部函數,並且您試圖從函數外部訪問它。 當定義內部函數時,它們就像局部變量一樣,只能由函數本身訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.