支持事件冒泡的事件有鼠标事件、键盘事件、表单事件、窗口事件、触摸事件等。详细介绍:1、鼠标事件,click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout等;2、键盘事件,keydown、keyup、keypress等;3、表单事件,submit、change、focus、blur等;4、窗口事件等等。
事件冒泡(event bubbling)是JavaScript中一种常见的事件传播方式。当一个事件在某个元素上触发时,这个事件不仅在该元素上触发,还会向上冒泡,触发其父元素的事件处理函数。这种冒泡机制使得我们可以用更少的代码来处理同一个事件,特别是在处理复杂的DOM结构时。
大部分浏览器事件都支持事件冒泡,包括:
1、鼠标事件:click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout等;
2、键盘事件:keydown、keyup、keypress等;
3、表单事件:submit、change、focus、blur等;
4、窗口事件:load、unload、resize、scroll等;
5、触摸事件:touchstart、touchend、touchmove等(注意,并非所有浏览器都支持所有触摸事件)。
以下是一些具体示例:
// 鼠标事件冒泡 document.getElementById("outer").addEventListener("click", function() { console.log("outer clicked"); }); document.getElementById("inner").addEventListener("click", function() { console.log("inner clicked"); }); // 键盘事件冒泡 document.getElementById("outer").addEventListener("keydown", function() { console.log("outer keydown"); }); document.getElementById("inner").addEventListener("keydown", function() { console.log("inner keydown"); }); // 表单事件冒泡 document.getElementById("outer").addEventListener("submit", function() { console.log("outer submit"); }); document.getElementById("inner").addEventListener("submit", function() { console.log("inner submit"); });
在以上示例中,当点击或者按键发生在"inner"元素上时,"inner"元素和"outer"元素的事件处理函数都会被触发。这就是事件冒泡的效果。