文章詳情頁
javascript - 關(guān)于原生js如何實現(xiàn)jquery的on()方法。
瀏覽:144日期:2023-03-05 10:05:08
問題描述
原生js如何實現(xiàn)jquery的on()方法,并且支持給一個元素同時綁定多個事件?
例如:
element.on(’click mouseout’,function(){...});
這樣的話用原生JS怎么實現(xiàn)?
問題解答
回答1:給你一個簡單的示例,如果你想在原生的JS中,使用on方法,可以這樣寫:
HTMLElement.prototype.on = function(events, callback){ let evs = events.split(’ ’); for(let event of evs){this.addEventListener(event, callback); } // 如果你想像JQuery一樣支持鏈?zhǔn)秸{(diào)用,可以在這里返回this // return this;}
這樣的寫法有很多漏洞,因為很多情況都沒有考慮。比如IE的事件綁定沒有考慮。比如多個事件沒有考慮多個回調(diào)。
但是。畢竟是要告訴你思想,而不是給你重復(fù)造個輪子。
JQuery的實現(xiàn)大概也是這么個邏輯,你可以使用這樣的方法去封裝屬于自己的庫。
回答2:addEventListener
標(biāo)簽:
JavaScript
上一條:javascript - vue的router-link中使用es6字符串模板時為什么還要加雙引號?下一條:javascript - 請問pc上瀏覽器刷新,關(guān)閉,后退的行為是如何監(jiān)聽?
相關(guān)文章:
1. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下2. android-studio - Android studio導(dǎo)入老版本的2048項目報錯3. TP6.0 Jump.php報錯4. 為什么return不了數(shù)據(jù)給ajax5. 請問一下各位老鳥 我一直在學(xué)習(xí)獨孤九賤 現(xiàn)在是在tp5 今天發(fā)現(xiàn) 這個系列視頻沒有實戰(zhàn)6. 急急急!!!求大神解答網(wǎng)站評論問題,有大神幫幫小弟嗎7. php mail無法發(fā)送郵件8. PHP類屬性聲明?9. PHP 怎么api獲取json數(shù)據(jù)10. 為什么要通過常量的方式拐彎抹角的寫呢,直接寫DSN之類的不好嗎
排行榜

熱門標(biāo)簽