这个闭包怎么写?

有有不白 2014-01-03 02:05:38

function bibao(i){
return function(e){
deleteStorage(i);}
}


for(var i=0;i<freshdreamdata.length;i++){
document.write("<li><a href='javascript:location.reload()' onmousedown='bibao(i)'>" + freshdreamdata[i] + "</a></li>");}
}


貌似闭包写的方法不对,一直不显示deletestorage效果
...全文
157 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
有有不白 2014-01-03
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
document.write("<li><a href='javascript:location.reload()' onmousedown='bibao("+i+")'>" + freshdreamdata[i] + "</a></li>");
谢谢!看了半天终于想起来要独立动态i这么回事。 直接deleteStorage("+i+") 就Ok了
JavaScript_R 2014-01-03
  • 打赏
  • 举报
回复
function bibao(i){ return function(i){ deleteStorage(i);}(i); }
有有不白 2014-01-03
  • 打赏
  • 举报
回复
就算是alert也不成功呀
有有不白 2014-01-03
  • 打赏
  • 举报
回复
1.2.3.4.5.6.7.8.9。。。自然数值。要删除的Id号。怎么解决这个问题比较好?
zhjdg 2014-01-03
  • 打赏
  • 举报
回复
那有用参数做闭包的。 参数是什么变量。
有有不白 2014-01-03
  • 打赏
  • 举报
回复
以上两种方法都没有反应。如果加上一个 _i= this.i; 不用闭包程式运行成功但是所有i都等于末尾数值。
KK3K2005 2014-01-03
  • 打赏
  • 举报
回复
for(var i=0;i<freshdreamdata.length;i++){ (function (i){ document.write("<li><a href='javascript:location.reload()' onmousedown='deleteStorage('+i+')'>" + freshdreamdata[i] + "</a></li>"); })(i); }
Go 旅城通票 2014-01-03
  • 打赏
  • 举报
回复
function bibao(i){

                 deleteStorage(i);

}
不用return了,你的这个和闭包没关系,是参数没有传递对,return的话就没有执行deleteStorage这个方法了
有有不白 2014-01-03
  • 打赏
  • 举报
回复
可能是“冲突了?
有有不白 2014-01-03
  • 打赏
  • 举报
回复
还是不行, 点击没有任何反应
Go 旅城通票 2014-01-03
  • 打赏
  • 举报
回复
document.write("<li><a href='javascript:location.reload()' onmousedown='bibao("+i+")'>" + freshdreamdata[i] + "</a></li>");

87,902

社区成员

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

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