解决循环给事件赋值的问题,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调用数据库存储过程示例(可在编辑区域修改参数):
该函数暂无示例;
运行结果展示区域: