最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 21:27:57
文档

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

js阻止事件追加的具体实现_javascript技巧:有些时候可以使用 e.stopPropagation(); e.preventDefault();来阻止事件冒泡,和默认事件的执行。但不能阻止事件的追加。 什么情况下要阻止事件的追加呢? 比如: 点击结账,这样的操作时,结账本身有自己的事件,但结账前要判断是否登录。 我们可能会这
推荐度:
导读js阻止事件追加的具体实现_javascript技巧:有些时候可以使用 e.stopPropagation(); e.preventDefault();来阻止事件冒泡,和默认事件的执行。但不能阻止事件的追加。 什么情况下要阻止事件的追加呢? 比如: 点击结账,这样的操作时,结账本身有自己的事件,但结账前要判断是否登录。 我们可能会这


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

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

比如:

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

我们可能会这样写:

Js代码
代码如下:
if(isLogin){ //判断是否登录
console.log("没有登录")
}else{
//结账相关代码
}

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

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

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

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

Demo代码
代码如下:




demo




结账



  • 加入收藏夹

  • 他人支付

  • 加入购入车

  • 我的主页




  • //最先绑定
    $(".isLogin").on("click", function (e) {

    if(true){ //登录判断
    alert("没有登录");
    e.stopImmediatePropagation();
    }

    return false;
    });

    $(".bill").on("click",function(){
    alert("结账相关内容!");
    });

    $(".a1").on("click",function(){
    alert("a1");
    });

    $(".a2").on("click",function(){
    alert("a2");
    });

    $(".a3").on("click",function(){
    alert("已加入购物车");
    });

    $(".a4").on("click",function(){
    alert("有登录判断");
    });






    其实,jquery给我们提供了查看事件的方法$._data($('.isLogin').get(0)),打开firebug,在控制台输入。
    Js代码

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

    会看到如下:

    Js代码

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

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

    文档

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

    js阻止事件追加的具体实现_javascript技巧:有些时候可以使用 e.stopPropagation(); e.preventDefault();来阻止事件冒泡,和默认事件的执行。但不能阻止事件的追加。 什么情况下要阻止事件的追加呢? 比如: 点击结账,这样的操作时,结账本身有自己的事件,但结账前要判断是否登录。 我们可能会这
    推荐度:
    标签: 事件 js javascript
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top