DOM 中的事件对象和addEventListener

it2024-07-11  43

DOM 中的事件对象和addEventListener

常见事件对象的属性和方法 1. e.target 返回的是触发事件的对象(元素) this 返回的是绑定事件的对象(元素) 区别 : e.target 点击了那个元素,就返回那个元素 this 那个元素绑定了这个点击事件,那么就返回谁 var div = document.querySelector('div'); div.addEventListener('click', function(e) { console.log(e.target); console.log(this); }) var ul = document.querySelector('ul'); ul.addEventListener('click', function(e) { // 我们给ul 绑定了事件 那么this 就指向ul console.log(this); console.log(e.currentTarget); e.target 指向我们点击的那个对象 谁触发了这个事件 我们点击的是li e.target 指向的就是li console.log(e.target); }) 了解兼容性 div.onclick = function(e) { e = e || window.event; var target = e.target || e.srcElement; console.log(target); } 2. 了解 跟 this 有个非常相似的属性 currentTarget ie678不认识

常见事件对象的属性和方法 addEventListener 1. 返回事件类型 var div = document.querySelector(‘div’); div.addEventListener(‘click’, fn); div.addEventListener(‘mouseover’, fn); div.addEventListener(‘mouseout’, fn);

function fn(e) { console.log(e.type); } 2. 阻止默认行为(事件) 让链接不跳转 或者让提交按钮不提交 var a = document.querySelector('a'); a.addEventListener('click', function(e) { e.preventDefault(); // dom 标准写法 }) 3. 传统的注册方式 a.onclick = function(e) { // 普通浏览器 e.preventDefault(); 方法 // e.preventDefault(); // 低版本浏览器 ie678 returnValue 属性 // e.returnValue; // 我们可以利用return false 也能阻止默认行为 没有兼容性问题 特点: return 后面的代码不执行了, 而且只限于传统的注册方式 return false; alert(11); }
最新回复(0)