js_操作dom(委托和冒泡事件)
  6DMaaPzJglxt 2023年12月05日 32 0



js操作html

  • js操作html
  • js操作dom
  • div绑定js函数
  • js的委托事件
  • js的冒泡事件
  • 阻止冒泡
  • 方法一
  • 方法二
  • 方法三


js操作html

js操作dom

js创建div样式,添加节点删除节点等等

var el1 = document.createElement('div');
var el2 = document.createElement('input');
var node = document.createTextNode('hello world!');
el1.appendChild(el2)
el1.removeChild(el2)

div绑定js函数

onclick绑定事件

<div id='childID' onclick="childfunc()">子组件</div>

js的委托事件

将事件统一绑定给元素共同的祖先元素(后代元素事件触发时,通过冒泡,通过祖先元素的响应函数来处理事件)
这样可以只绑定一次,即可应用到多个元素上
事件的委派利用了冒泡,通过委派可以减少事件绑定的次数,提高程序的性能
event中的target表示的触发事件的对象
使用它对触发事件的元素进行判断
js

function onloadEvent() {
			document.getElementById("eventTrust").addEventListener('click', function(e) {

					alert("点击的内容是:" + e.target.innerHTML);
				})

			}
		window.onload=onloadEvent()

div

function onloadEvent() {
			document.getElementById("eventTrust").addEventListener('click', function(e) {

					alert("点击的内容是:" + e.target.innerHTML);
				})

			}
		window.οnlοad=onloadEvent()

js_操作dom(委托和冒泡事件)_javascript

js的冒泡事件

指的是事件的向上传导,当后代元素的事件被触发时,其祖先元素的相同时间也会被触发

div

<div class="right">
				<p>js的冒泡事件</p>
				<div id='parentID' onclick="parentfunc()">
					<div id='childID' onclick="childfunc()">子组件</div>
				</div>
			</div>

事件绑定

<script>
	        function parentfunc() {
	            console.log('父级事件触发了!')
	        }
	        function childfunc(){
	            console.log('子级事件触发了!')
	        }
	    </script>

子组件的点击不仅会触发自身绑定的事件也会触发父级事件的点击事件

js_操作dom(委托和冒泡事件)_javascript_02

阻止冒泡

方法一

event.stopPropagation()
注意:但不会阻击dom的默认行为(若添加跳转链接则会触发当前dom跳转)

function childfunc() {
			console.log('子级事件触发了!')
			event.stopPropagation()
		}

方法二

return false;
注意:事件处理过程中,阻止了事件冒泡,也阻止了默认行为(若添加跳转链接也不会触发当前dom跳转)

function childfunc() {
			console.log('子级事件触发了!')
			return false
		}

方法三

event.preventDefault();
注意:事件处理过程中,不会阻止事件冒泡,会阻止了默认行为(若添加跳转链接也不会触发当前dom跳转)

function childfunc() {
			console.log('子级事件触发了!')
			event.preventDefault()
		}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
  f18CFixvrKz8   2024年05月20日   88   0   0 JavaScript
  fxrR9b8fJ5Wh   2024年05月17日   52   0   0 JavaScript
  2xk0JyO908yA   2024年04月28日   40   0   0 JavaScript
6DMaaPzJglxt