最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生javascript如何實(shí)現(xiàn)共享onload事件

 更新時(shí)間:2020年07月03日 11:58:20   作者:奔跑的太陽花  
這篇文章主要介紹了原生javascript如何實(shí)現(xiàn)共享onload事件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在工作時(shí),我們給一個(gè)元素綁定了事件,如果dom還沒加載完成,就執(zhí)行了js代碼,就不會綁定成功。常規(guī)解決方案就是用:

window.onload = EventFunction;

可是如果有兩個(gè) 事件,

  • window.onload = EventFunction1;
  • window.onload = EventFunction2;

那2就會將1取代,這時(shí)你可能會想:每個(gè)事件處理板書只能綁定一條指令。有一種辦法可以讓我們避開這一難題:可以先創(chuàng)建一個(gè)匿名函數(shù)來容納這兩個(gè)函數(shù),然后把那個(gè)匿名函數(shù)綁定到onload事件上,如下所示:

window.onload = function(){
 firstFunction();
 secondFunction(); 
}

它確實(shí)能很好地工作————在需要綁定的函數(shù)不是很多的場合,這應(yīng)該是最簡單的解決方案了。

這里還有一個(gè)彈性最佳的解決方案——不管你打算頁面加載完畢時(shí)執(zhí)行多少個(gè)函數(shù),它都可以應(yīng)付自如。這個(gè)方案需要額外編寫一些代碼,把函數(shù)綁定到window.onload事件就非常易行了。

這個(gè)函數(shù)的名字是addLoadEvent,它是由Simon Willison寫的。它只有一個(gè)參數(shù):打算在頁面加載完畢時(shí)執(zhí)行的函數(shù)的名字。

下面是此函數(shù)要完成的操作:

1.把現(xiàn)有的 window.onload 事件處理函數(shù)的值存入變量 oldonload;

2.如果在這個(gè)處理函數(shù)上還沒有綁定任何函數(shù),就像平時(shí)那樣把新函數(shù)添加給它;

3.如果在這個(gè)處理函數(shù)上已經(jīng)綁定了一些函數(shù),就把新函數(shù)追加到現(xiàn)有指令的末尾。

function addLoadEvent(func) {
    var oldonload = window.onload;
    if(typeof window.onload != 'function'){
      window.onload = func;
    }else{
      window.onload = function(){
        oldonload();
        func();
      }
    }
  }

這將把那些在頁面加載完畢時(shí)執(zhí)行的函數(shù)創(chuàng)建為一個(gè)隊(duì)列。如果想把剛才那兩個(gè)函數(shù)添加到隊(duì)列里去,只需要寫出以下代碼就行了:

addLoadEvent(firstFunction);
addLoadEvent(secondFunction);

我發(fā)現(xiàn)這個(gè)函數(shù)非常實(shí)用,尤其是在代碼變得越來越復(fù)雜的時(shí)候。無論打算在頁面加載完畢時(shí)執(zhí)行多少個(gè)函數(shù),只要定一條語句就可以安排好一切。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 前端圖形開發(fā)canvas繪制入門教程

    前端圖形開發(fā)canvas繪制入門教程

    Canvas是HTML5新增元素,用于繪制圖形、動畫等視覺效果,簡單添加Canvas元素和JavaScript即可繪制圖形和文本,包括線條、矩形、圓形等,Canvas優(yōu)勢在于高性能和兼容性,適用于復(fù)雜交互效果,需要的朋友可以參考下
    2024-11-11
  • 詳解JavaScript什么情況下不建議使用箭頭函數(shù)

    詳解JavaScript什么情況下不建議使用箭頭函數(shù)

    箭頭函數(shù)作為ES6新增的語法,在使用時(shí)不僅能使得代碼更加簡潔,而且在某些場景避免this指向問題。但是箭頭函數(shù)不是萬能的,也有自己的缺點(diǎn)以及不適用的場景,本文總結(jié)了JavaScript什么情況下不建議使用箭頭函數(shù),感興趣的可以了解一下
    2022-06-06
  • JS正則驗(yàn)證郵箱的格式詳細(xì)介紹

    JS正則驗(yàn)證郵箱的格式詳細(xì)介紹

    這篇文章主要介紹了JS正則驗(yàn)證郵箱的格式。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • jquery插件錦集【推薦】

    jquery插件錦集【推薦】

    本文主要分享了jquery插件: 時(shí)鐘效果; 倒計(jì)時(shí); 全選效果; tab點(diǎn)擊切換; tab鼠標(biāo)移動切換; 文本輸入搜索等。具有很好的參考價(jià)值需要的朋友一起來看下吧
    2016-12-12
  • 在JavaScript中終止forEach循環(huán)的三種方式

    在JavaScript中終止forEach循環(huán)的三種方式

    如何終止forEach循環(huán)這個(gè)問題估計(jì)會難倒一部分同學(xué),甚至?xí)腥朔磫?forEach循環(huán)在JavaScript中能終止嗎?本文小編給大家介紹了三種方式可以終止forEach循環(huán),需要的朋友可以參考下
    2023-11-11
  • 微信小程序支付功能 php后臺對接完整代碼分享

    微信小程序支付功能 php后臺對接完整代碼分享

    這篇文章主要為大家詳細(xì)介紹了微信小程序支付功能,分享了php后臺對接完整代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • innerHTML,outerHTML,innerText,outerText的用法及區(qū)別解析

    innerHTML,outerHTML,innerText,outerText的用法及區(qū)別解析

    本篇主要是對innerHTML,outerHTML,innerText,outerText的用法及區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • javascript中 try catch用法

    javascript中 try catch用法

    JS try catch語句一般在什么情況下使用?是必須使用的嗎?下面就讓小編來給大家介紹一下試用心得。
    2015-08-08
  • JS 設(shè)置Cookie 有效期 檢測cookie

    JS 設(shè)置Cookie 有效期 檢測cookie

    這篇文章主要介紹了JS 設(shè)置Cookie 有效期 檢測cookie的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • JS實(shí)現(xiàn)微博發(fā)布功能

    JS實(shí)現(xiàn)微博發(fā)布功能

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)微博發(fā)布功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評論

南木林县| 盐山县| 舒兰市| 天镇县| 盱眙县| 江门市| 北辰区| 闸北区| 萝北县| 全椒县| 枞阳县| 繁峙县| 肇东市| 临泉县| 通州市| 成安县| 曲松县| 中江县| 永顺县| 三都| 大埔县| 台中市| 旺苍县| 临安市| 于田县| 榆社县| 永兴县| 读书| 西峡县| 谷城县| 武穴市| 鸡西市| 兰溪市| 灵川县| 鄂伦春自治旗| 阳东县| 南华县| 察雅县| 清苑县| 岚皋县| 富锦市|