![](/img/trans.png)
[英]Pass a global variable to the $(document).ready function in jQuery
[英]Pass function to jQuery .ready() function
我目前正在使用Simon Willson的addLoadEvent函數來添加要在load事件之后運行的函數。 我遇到了一個問題,其中傳遞給addLoadEvent函數的函數引用了DOM尚未加載的div,因此我的操作(顯示div)沒有執行任何操作。 當我改用jQuery $(document).ready函數時,div已由DOM加載,我可以對其執行操作(使它顯示出來)。
因此,有幾個問題。 為什么在使用上述函數加載DOM完成之前執行我的函數? 有辦法延遲嗎? 我能想到的另一種選擇是將一個函數傳遞給等效的jquery:
function jqueryAddReadyEvent(myFunc)
{
$(document).ready(function()
{
//execute already existing functions
//add a new function to the ready event
myFunc();
}
}
當我嘗試上述代碼時,出現了JavaScript錯誤“ myFunc不是函數”。 有沒有一種方法可以將函數傳遞給jQuery ready函數並執行? 等效於以下內容:
$(document).ready(function()
{
funcA();
}
$(document).ready(function()
{
funcB();
}
...//more of the same
替換為以下內容:
jQueryAddReadyEvent(funcA);
jQueryAddReadyEvent(funcB);
如果您需要添加許多功能,那么我建議您執行以下操作:
Create an array that will old all the functions you want to call.
Add functions to that array as you please.
In the .ready(function() { ... }) call every function in that array.
你定了
function jqueryAddReadyEvent(myFunc) {
$(myFunc);
}
jqueryAddReadyEvent(function() {
alert('hello world');
});
在我看來,這是正確的。 您很可能用某種不是函數的方式調用它。
順便說一句,您可以將其縮短為:
var jqueryAddReadyEvent = $(document).ready
或直接使用$(document).ready()來達到相同的效果,因為它專門做您想做的事情,在加載后運行函數,實際上更短。
$(document).ready(funcA);
$(document).ready(funcB);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.