博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js闭包问题
阅读量:6192 次
发布时间:2019-06-21

本文共 1429 字,大约阅读时间需要 4 分钟。

1 function picLinkInit(parentClassName, imgW, imgH, childClassObjs) { 2 var $match = $(parentClassName); 3 var mWidth = Math.floor($match.width()); 4  5 var mHeight = computeHeight(mWidth, imgW, imgH); 6 $match.css({ 7 "width": mWidth, 8 "height": mHeight 9 });10 for (var i = 0; i < childClassObjs.length; i++) {11 var childClassObj = childClassObjs[i];12 13         $(childClassObj.cName).css({14 "width": Math.floor(mWidth * childClassObj.ratioMoleculeW / childClassObj.ratioDenominatorW),15 // "background": "rgba(9,200,200,0.5)",16 "height": Math.floor(mHeight * childClassObj.ratioMoleculeH / childClassObj.ratioDenominatorH)17         });18 /* if (childClassObj.url) {19             $(childClassObj.cName).click(function () {20                 window.location.href =childClassObj.url;21             });22         }*/23 (function (i) {24 if ( childClassObjs[i].url) {25                 $( childClassObjs[i].cName).click(function () {26                     window.location.href = childClassObjs[i].url;27                 });28             }29         })(i);30 31     }32 }

 

闭包表现:js没有块级元素,数组记录的是最后一个的 。跟作用域等有关。
封装成内部函数,把i传人进内部函数,这样外部函数不会调用到内部函数的变量。
(function (i) {
if ( childClassObjs[i].url) {
$( childClassObjs[i].cName).click(function () {
window.location.href = childClassObjs[i].url; }); } })(i);

 

转载于:https://www.cnblogs.com/zyjzz/p/4973585.html

你可能感兴趣的文章
RTP协议分析
查看>>
前后端分离了,然后呢?(转)
查看>>
自定义控件:滑动开关按钮
查看>>
js修改后没反应-看看是不是取的缓存
查看>>
【iCore3 双核心板_ uC/OS-III】例程十一:任务消息队列
查看>>
C#的delegate简单练习
查看>>
【301】IDL与C#混合编程
查看>>
分治法应用之一——Strassen矩阵乘法(转)
查看>>
linux-diff命令
查看>>
必须关注的25位知名JavaScript开发者
查看>>
linq直接执行sql语句
查看>>
POJ - 1170 Shopping Offers (五维DP)
查看>>
【Linux学习】Linux的文件权限(一)
查看>>
python的内存管理机制
查看>>
一个基于 EasyUI 的前台架构(3)封装操作Tabs的JS代码
查看>>
《深入理解Android 卷III》第四章 深入理解WindowManagerService
查看>>
hdu 5093 二分匹配
查看>>
a erlang crawler
查看>>
hdu 3586 Information Disturbing(树形dp + 二分)
查看>>
无聊,只发两张图……
查看>>