jQuery 一个对象可以同时绑定多个事件,这是如何实现的?
jQuery 一个对象可以同时绑定多个事件,这是如何实现的?
$ele.on('eventName', handle1);
$ele.on('eventName', handle2);
$ele.on('eventName', handle3);
其实 $ele
元素的 eventName
事件有一个处理函数数组 监听一次就往里面放一个 handle,数组是先进后出型的
也就是栈, 然后触发事件的时候一次执行
上面的监听相当于
$ele.eventHandle['eventName'] = [];
$ele.eventHandle['eventName'].push(handle1);
$ele.eventHandle['eventName'].push(handle2);
$ele.eventHandle['eventName'].push(handle3);
然后 $ele.trigger('eventName')
触发的时候, 从栈里面取出处理函数执行
while($ele.eventHandle['eventName'].length) {
handle = $ele.eventHandle['eventName'].pop();
handle();
}
最先监听的最后执行;
更多面试题
如果你想了解更多的前端面试题,请点击下面进行选择,这里基本包涵了市场上的所有前端方面的面试题,让你面试更加顺利。
- HTML 面试题
- CSS 面试题
- JavaScript 面试题
- jQuery 面试题
- Vue.js 面试题
- React 面试题
- 算法 面试题
- AJAX/HTTP 面试题
- Babel 面试题
- BootStrap 面试题
- Electron 面试题
- Gulp 面试题
- Node.js 面试题
- 前端经验相关 面试题
- 前端综合 面试题
- Webpack 面试题
- 微信小程序 面试题
这些题库还在更新中,如果你有不错的面试题库欢迎分享给我,我整理后放上来;人人为我,我为人人,互帮互助,共同提高,祝大家都拿到心仪的Offer!