• js闭包问题


     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);
  • 相关阅读:
    php apc 安装
    apaache php 日记设计
    memcache windows64 位安装
    JavaScript的作用域与闭包
    怎样写一个简单的操作系统?
    php 关于锁的一些看法
    Windows版本Apache+php的Xhprof应用__[2]
    Windows版本Apache+php的Xhprof应用
    使用TortoiseGit对Git版本进行分支操作
    机器学习数据不均衡问题
  • 原文地址:https://www.cnblogs.com/zyjzz/p/4973585.html
Copyright © 2020-2023  润新知