嵌套 click 第二层 click会叠加 导致 触发 多次

$("#appearHiddenDiv").click(function(){
    $("#hiddenDiv").css({display:"block"});
    $("#closeHiddenDiv").click(function(){    
    //alert("erhsh test");
    $("#hiddenDiv").css({display:"none"});    
}); });

表面上这段代码挺合逻辑的,但是当在第二个click 中加入alert测试一下,会发现第一次点击关闭层时alert一次,但第二次开始就不止一次了:原因出在了,click事件被累积,然后作用于 $("#closeHiddenDiv") jq对象上。所以后面每操作一次,alert多一次。。。

解决方法是把click 分开写,如下:

$("#appearHiddenDiv").click(function(){
    $(
"#hiddenDiv").css({display:"block"});
    $(
"#closeHiddenDiv").click(function(){    
    
//alert("erhsh test");
    $("#hiddenDiv").css({display:"none"});    
});
});

 

$("#appearHiddenDiv").click(function(){
  $("#hiddenDiv").css({display:"block"});
});

$("#closeHiddenDiv").click(function(){ 
  //alert("erhsh test");
  $("#hiddenDiv").css({display:"none"});
});
原文地址:https://www.cnblogs.com/afei-happy/p/3718674.html