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