3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個贊
這是一個范圍問題 - 在函數(shù)內(nèi)部聲明的函數(shù)在外部函數(shù)之外無法訪問,就像在函數(shù)內(nèi)部聲明的變量一樣:
(function(){
var a = 'hello';
function b () {
console.log(a);
}
})();
a; // syntax error - a is undefined
b(); // syntax error - b is undefined
您可以通過將函數(shù)分配給全局變量來使其工作:
var f;
$(document).ready(function(){
f = function(){
alert("alert");
}
})

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個贊
每當(dāng)你聲明一個函數(shù)時,你就會創(chuàng)建一個作用域。在該范圍內(nèi)聲明的任何內(nèi)容都無法在該范圍之外訪問。
$(document).ready(function(){
// f is only accessible to other code declared in this function.
function f(){
alert("alert");
}
})
使用 jQuery 執(zhí)行此操作的推薦方法是在 jQuery 就緒函數(shù)中分配單擊處理函數(shù)。
HTML:
<button id="my-button-id">My Button</button>
JavaScript:
$(document).ready(function(){
// f is only accessible to other code declared in this function.
function f(){
alert("alert");
}
// Assign onclick here
$('#my-button-id').on('click', f)
})

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個贊
$(document).ready() 在所有 html 加載完成后被調(diào)用。由于您在 html 中調(diào)用“f()”函數(shù),因此它會在“$(document).ready()”中的任何內(nèi)容運(yùn)行之前調(diào)用“f()”,這意味著“f()”沒有定義。
現(xiàn)在通常甚至不使用“$(document).ready()”,只要您在所有 html 末尾加載該 jQuery 即可避免長時間加載。這將允許您從 html 中調(diào)用“f()”,并且在 html 之后仍然加載 jQuery 的其余部分。
- 3 回答
- 0 關(guān)注
- 213 瀏覽
添加回答
舉報