高手来看看这个问题

k99166 2012-09-07 09:03:32

第一种情况:
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事件呢?
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
k99166 2012-09-12
  • 打赏
  • 举报
回复
谢谢各位,已经解决了(*^__^*)
geruilin2012 2012-09-12
  • 打赏
  • 举报
回复
回答者果然是高手呀
yibey 2012-09-11
  • 打赏
  • 举报
回复
光从代码角度,这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;
}
});

似梦飞花 2012-09-08
  • 打赏
  • 举报
回复
第二种情况看起来和key没关系啊
第一种情况因为一开始key=1,所以会添加click事件,之后key=0时事件已经添加上去了 你可以在click事件里removeEventListener再试试
貌似

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧