编程语言
首页 > 编程语言> > javascript-事件处理顺序

javascript-事件处理顺序

作者:互联网

javascript jquery事件处理
如果事件发生时(例如“ click”)绑定了一个父元素的函数和另一个子DOM元素的处理函数,那么哪个被调用?
如果全部都按哪个顺序调用?
谢谢!

解决方法:

事件使DOM树“冒泡”,因此,如果您具有某个元素及其父元素的处理程序,则将首先调用子元素处理程序.

如果您在单个DOM元素上为一个事件注册了多个处理程序(例如,单个按钮有多个“单击”处理程序),则将按它们附加到该元素的顺序来调用这些处理程序.

您的处理程序可以做一些事情来改变完成后发生的事情:

>使用传入的事件参数,调用event.preventDefault()以防止发生任何“本机”操作
>调用event.stopPropagation()以防止事件冒泡DOM树
>从处理程序返回false,以停止传播并防止默认

请注意,对于某些输入元素(复选框,单选按钮),处理有些奇怪.调用处理程序时,浏览器将已将复选框“ checked”值设置为其先前值的相反值.就是说,如果您有一个未选中的复选框,则“单击”处理程序将注意到调用该属性(在用户单击之后),“ checked”属性将设置为“ true”.但是,如果处理程序返回false,则单击实际上不会更改复选框的值,并且将保持未选中状态.因此,就像浏览器在调用处理程序之前执行了“本机”操作的一半(切换元素“ checked”属性)一样,但是只有在处理程序不返回false或在调用“ preventDefault()”时才真正更新该元素.事件对象).

标签:event-bubbling,javascript-events,javascript,jquery
来源: https://codeday.me/bug/20191024/1918663.html