干熟妇在线视频午夜剧场一级A级|99成人香视频日本两性激情视频|久久 午夜福利无码精品人妻一区|热久久超碰精品精品少妇一区二区|五月天综合在线国产一区免费视频|亚洲成人中心热re久久99|亚洲国产怡红院丁香五月综合h|玖玖九久久久午夜射精视频

十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號 掃一掃關(guān)注
小程序
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

結(jié)合實(shí)例介紹JS事件委托機(jī)制及應(yīng)用

百恒網(wǎng)絡(luò) 2017-01-10 5698

對“事件處理程序過多”問題的解決方案就是事件委托。事件委托利用了事件冒泡,只指定一個事 件處理程序,就可以管理某一類型的所有事件。例如,click 事件會一直冒泡到 document 層次。也就 是說,我們可以為整個頁面指定一個 onclick 事件處理程序,而不必給每個可單擊的元素分別添加事 件處理程序。以下面的 HTML代碼為例。?

?
? ? ? ?其中包含 3個被單擊后會執(zhí)行操作的列表項(xiàng)。按照傳統(tǒng)的做法,需要像下面這樣為它們添加 3個事 件處理程序。?
? ? ? ?var item1 = document.getElementById("goSomewhere");?
? ? ? ?var item2 = document.getElementById("doSomething");
? ? ? ?var item3 = document.getElementById("sayHi");?

? ? ? ?EventUtil.addHandler(item1, "click", function(event){
? ? ? ? ? ? ? location.href = "http://www.myforexfactory.net";?
? ? ? ?});?

? ? ? ?EventUtil.addHandler(item2, "click", function(event){?
? ? ? ? ? ?document.title = "I changed the document's title";?
? ? ? ?});?

? ? ? ?EventUtil.addHandler(item3, "click", function(event){
? ? ? ? ? ? ? ?alert("hi");?
? ? ? ?});
? ? ? ?如果在一個復(fù)雜的 Web 應(yīng)用程序中,對所有可單擊的元素都采用這種方式,那么結(jié)果就會有數(shù)不 清的代碼用于添加事件處理程序。此時,可以利用事件委托技術(shù)解決這個問題。使用事件委托,只需在 DOM樹中盡量高的層次上添加一個事件處理程序,下面由南昌網(wǎng)站建設(shè)公司百恒網(wǎng)絡(luò)前端工程師結(jié)合完整實(shí)例作一個介紹,如如下面的例子所示。?
? ? ? ?


? ? ? ?Event Delegation Example
? ? ? ?


? ? ? ?
? ? ? ?


? ? ? ?在這段代碼里,我們使用事件委托只為
400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×
瑞丽市| 南丰县| 贵德县| 岳普湖县| 缙云县| 东港市| 渝中区| 原阳县| 黔江区| 湘潭县| 临清市| 全椒县| 望城县| 怀化市| 呼和浩特市| 五莲县| 长武县| 新昌县| 阳朔县| 塘沽区| 临沂市| 江陵县| 佛教| 涟源市| 江达县| 通化县| 白水县| 景谷| 津南区| 牙克石市| 莆田市| 兴文县| 会同县| 淮北市| 洞口县| 荃湾区| 宣汉县| 苗栗县| 新民市| 大石桥市| 宜春市|