html - JavaScript 事件绑定只能执行一次了,再次点击就变得无效 ,求助怎么回事

查看:110
本文介绍了html - JavaScript 事件绑定只能执行一次了,再次点击就变得无效 ,求助怎么回事的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

点击收藏,弹出提示框,询问是否取消收藏,然后点击提示框里面的关闭按钮,关闭提示框后。再次点击那个触发事件的 收藏按钮就会无效 图片描述

var collectionBtn = document.querySelectorAll('.collection-center .collection-shouc');

var Ceng = "<div id='alert' class='alert'><div class='alert-k'><div class='alert-k-close'>×</div><a class='yes' href='javascript:;'>确定</a><a class='no'  href='javascript:;'>取消</a></div></div>";

for(var i = 0; i<collectionBtn.length; i++){
    collectionBtn[i].addEventListener('click',addEvent,false);
}

function addEvent(){
        if(document.querySelector('#alert')){
            shows();
        }else{
            document.body.innerHTML += Ceng;
            shows();
        }
    }

function shows(){
    var ale   = $('.alert');
    var ale_k =  ale.find('.alert-k');
    ale.show(500);
    ale_k.slideDown(200);
    hides();
    
}
function hides(){
    var ale = $('.alert');
    $('.alert-k').on('click', '.alert-k-close', function(){
        $(this).parent().slideUp(200);
        $(this).parent().parent().hide(500);
    });
}

解决方案

  1. 按钮确定取消效果反了. 确定就是确定操作, 取消就是单纯隐藏这个confirm的div

  2. 我猜你重新生成了一个按钮, 这样之前绑定的事件就和之前的按钮一起被销毁了
    解决方法:

             1> 绑定的时候用 $("document").on("click", ".某元素" , function(){});
             2> 或者只用这一个元素就可以了, 没有必要重新生成一个按钮

这篇关于html - JavaScript 事件绑定只能执行一次了,再次点击就变得无效 ,求助怎么回事的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆