onclick 定義的方法 在$(function(){})或window.onload=function(){}中無效


$(function(){ }) 或 window.onload=function(){}  表示頁面加載完成后執行,html文檔從至上而下解析的時候 ; 解析到onclick="showAlert()"方法的時候寫在$(function(){ }) 或 window.onload=function(){} 里的方法還沒有聲明,會報錯。

 

window.onload 和 $(function(){})的 區別:

window.onload是js原生,$(function(){})需要引用jquery庫才生效;
多個window.onload=function(){}會被覆蓋,只執行最后一個;

多個$(function(){})都執行

$(function () {
    console.log("ready執行");
});

$(function() {
    console.log("ready1執行");
});

window.onload = function () {
    console.log('load執行');
};
window.onload = function () {
    console.log('load1執行');
}

//結果

ready執行
ready1執行
load1執行

 

解決:

  如果將showAlert()方法寫道$(function(){ }) 或 window.onload=function(){}  外,html文檔從至上而下解析會遇到function showAlert(){}的方法,就會在內存中開辟一個新的空間來對函數進行存儲,方便以后進行調用。所以該方法起作用。

  當然如果在$(function(){ }) 或 window.onload=function(){} 內有你需要的變量,你的方法寫到外面就會獲取不到。可以

  

//在內部聲明全局方法 
window.untreatedMsg = untreatedMsg;

function untreatedMsg(bigareaid, dt) {
   $.ajax({
       url: ``,
       type: "GET",
       success: function (res) { },
       error: function () {},
   })
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM