JS阻止事件冒泡以及浏览器默认行为

谁践踏了优雅 2022-04-23 20:28 394阅读 0赞

e的兼容


  1. function fn(e){
  2. var event = e || window.event;
  3. }

FireFox里的EventIE里的不同,IE里的是全局变量,随时可用。FireFox里的要用参数引导才能用,是运行时的临时变量
IE/Opera中是window.event,在FireFox中是event。而事件的对象,在IE中是window.event.srcElement,在Firefox中是event.targetOpera中两者都可用

阻止事件冒泡


W3C的方法是e.stopPropagation()IE则是使用e.cancelBubble = true
stopPropagation是事件对象Event的一个方法,作用是阻止目标元素的冒泡事件,但是不会阻止默认行为
什么是冒泡事件?如在一个按钮是绑定一个click事件,那么click事件会依次在它的父级元素中被触发,stopPropagation就是阻止目标元素的事件冒泡到父级元素
了解更多请点这:理解DOM中的事件流
阻止事件冒泡兼容:

  1. function stopPropagation(e) {
  2. var e = e || window.event;
  3. if ( e && e.stopPropagation ){
  4. e.stopPropagation();
  5. }else{
  6. e.cancelBubble = true;
  7. }
  8. }

阻止浏览器默认行为


W3C的方法是e.preventDefault()IE则是使用e.returnValue = false
preventDefault是事件对象Event的一个方法,作用是取消一个目标元素的默认行为。如果元素没有默认行为,调用无效。什么元素有默认行为呢?如链接<a href="xxx">点我</a>,提交按钮<input type=”submit”>

return false:
JSreturn false只会阻止默认行为,而jQuery则既阻止默认行为又防止对象冒泡
阻止浏览器默认行为兼容:

  1. function stopDefault(e) {
  2. var e = e || window.event;
  3. if (e && e.preventDefault){
  4. e.preventDefault();
  5. }else{
  6. e.returnValue = false;
  7. }
  8. return false;
  9. }

发表评论

表情:
评论列表 (有 0 条评论,394人围观)

还没有评论,来说两句吧...

相关阅读