有思俱乐部学习园地

解决循环给事件赋值的问题,U.UF.C.closure(fun, parms)

语法格式:

            功能:解决js循环给事件(如onclick事件等)赋值,总是最后一个不存在的元素被赋值的问题。
            参数一(对象):函数
            参数二(函数):函数参数数组,一定是数组模式
            示例: U.UF.C.closure(fun, [parms])
        注释:
        解决给元素循环赋予事件及闭包的问题函数名称为:U.FC.C.closure
        案例:U.UF.C.closure(element,function(){
            //执行其他函数
        });

        //不用闭包的解决方法。
        //当给元素循环赋予事件时,为了解决事件始终聚焦在最后一个元素的问题,可以采用如下写法。
        for(var i = 0;i<100;i++){
            //使用闭包的写法
            div[i].onclick=clickfun(i,div[i]);
        }
        function clickfun(j,el){
            return function(){
                el.style.backgroudcolor = '#000';
            }  
        }

        //当给元素循环赋予事件时,为了解决事件始终聚焦在最后一个元素的问题,也可以采用闭包的写法。
        for(var i = 0;i<100;i++){
            //使用闭包的写法
            div[i].onclick=function(j,el){
                return function(){
                    div[j].style.backgroudcolor = '#000';
                }  
            }(i,div[i]);
        }


        //为了解决此问题,优化方案如下:
        for(var i = 0;i<100;i++){
            div[i].onclick =  U.UF.C.closure(clickfun,[el]);
        }
        function clickfun(el){
            el.style.backgroudcolor = '#000';
        }
        

前端javascript调用数据库存储过程示例(可在编辑区域修改参数):

该函数暂无示例;

运行结果展示区域: