最近在看zepto的源码在看的过程中,对于js事件监听一直云里雾里的,打算整理成文。
html
<div> <input type="text" id="textBox"/> <p></p></div>
function init() { var inputElement = document.getElementById('textBox'), pElement = document.getElementsByTagName('p')[0]; inputElement.addEventListener('keydown', function () { pElement.textContent = inputElement.value.length; }); } window.addEventListener('load', init, false)
效果
http://codepen.io/Yunkou/full/KtdwC/
在整个过程中(没有涉及到IE兼容),其实addEventListener三个参数中,前两个好理解,那么问题来了 false 做如何理解呢?
element.addEventListener(event, function, useCapture)
这个useCapture到底是个什么货。
第一个参数是需要绑定的事件,第二个参数是触发事件后要执行的函数。而第三个参数默认值是false,表示在事件冒泡的阶段调用事件处理函数,如果参数为true,则表示在事件捕获阶段调用处理函数。举个栗子。
那问题来了,到底啥是 时间冒泡和事件捕获?对于js小雏来说实在太难理解了。解惑js事件机制哪家强当然是 小胡子哥 解惑Javascript事件机制其实这篇也不错 但是稍微有点难度。
新闻热点
疑难解答