高手来看看这个问题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;
}
});
