javascript - 求助在 requireJS 中,$(window).load() 里面的代碼 為什么不會(huì)執(zhí)行?
問(wèn)題描述
不知道為什么,$(window).load() 里面的代碼不會(huì)執(zhí)行 , 我覺(jué)得應(yīng)該是 requireJS 加載的問(wèn)題,但是我不太清楚到底發(fā)生了什么,才不能使用 $(window).load() 函數(shù) , 求助大家,真心感謝 !?。?/p>
問(wèn)題解答
回答1:使用requireJS的一個(gè)好處就是可以保證js模塊按照你指定的依賴順序加載。回到你的代碼,define用于定義一個(gè)模塊,同時(shí)表明該模塊依賴于XyEason。因此requireJS會(huì)保證在XyEason加載完之后,才執(zhí)行回調(diào)函數(shù)也就是function(XyEason)?;卣{(diào)函數(shù)的執(zhí)行是異步的,而load事件發(fā)生在頁(yè)面加載的時(shí)候,等執(zhí)行這段代碼的時(shí)候load事件已經(jīng)觸發(fā)過(guò)了,自然不會(huì)執(zhí)行。你的代碼等價(jià)于下面這段
setTimeout(function(){ window.onload = function(){ alert('load') } //永遠(yuǎn)不會(huì)執(zhí)行},1000)回答2:
關(guān)鍵點(diǎn)在于你在什么時(shí)機(jī) require()的,如果在onload事件之后肯定是不會(huì)觸發(fā)的,希望可以幫助到你。
