js阻止事件追加的具体实现

前端之家收集整理的这篇文章主要介绍了js阻止事件追加的具体实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有些时候可以使用 e.stopPropagation(); e.preventDefault();来阻止事件冒泡,和默认事件的执行。但不能阻止事件的追加。

什么情况下要阻止事件的追加呢?

比如:

点击“结账”,这样的操作时,结账本身有自己的事件,但结账前要判断是否登录

我们可能会这样写:

Js代码

代码如下:
登录 console.log("没有登录") }else{ //结账相关代码 }

如果点击“我的主页”也有登录判断 登录判断代码

if(isLogin){ //判断是否登录 console.log("没有登录") }else{ //个人中心 }

如果还有更多的登录判断。是不是就会有更多像上面的代码呢?后来我发现stopImmediatePropagation()这个方法, 阻止事件追加。上面的问题就不是问题了。

重要:.确保登录判断事件是第一个绑定的事件。

Demo代码

代码如下:
Meta charset="UTF-8"> demo
其实,jquery给我们提供了查看事件的方法$._data($('.isLogin').get(0)),打开firebug,在控制台输入。 Js代码

$._data($('.isLogin').get(0))

会看到如下:

Js代码

Object { events={...},handle=function()}

点击可以看到事件数组,方便查看元素上绑定了什么样的事件。

原文链接:https://www.f2er.com/js/57546.html

猜你在找的JavaScript相关文章