高手来看看这个有关问题

高手来看看这个问题JScript code第一种情况:var key 1if(key){$(bottomId).addEventListener(click

高手来看看这个问题

JScript code
   第一种情况:     var key = 1;     if(key){                              $("bottomId").addEventListener('click', function(){            var coverDiv = box.createDiv('div', divStyle);        box.insertDiv(coverDiv);        $("closeId").style.visibility = "visible";             key = 0;                    });    }     第二种情况:      var key = 1;      $("bottomId").addEventListener('click', function(){            var coverDiv = box.createDiv('div', divStyle);        box.insertDiv(coverDiv);        $("closeId").style.visibility = "visible";         key = 0;                    });


为什么只有第二种情况才是我想要的结果 只能执行一次click事件呢?

[解决办法]
第二种情况看起来和key没关系啊
第一种情况因为一开始key=1,所以会添加click事件,之后key=0时事件已经添加上去了 你可以在click事件里removeEventListener再试试
貌似
[解决办法]
光从代码角度,这2个代码都会注册事件啊。
注册了你没有删除,只是从代码看上面2段代码效果完全一样!

所以楼主自己看看是否在其他处引用了key 还有该对象($("bottomId"))的事件。
还有楼主想要事件只执行一次的话,偷懒一点可以如下
var key = 1;
$("bottomId").addEventListener('click', function(){ 
if(key==1){
var coverDiv = box.createDiv('div', divStyle);
box.insertDiv(coverDiv);
$("closeId").style.visibility = "visible";
key = 0; 
}
});