js匿名函数解决回调上下文参数变化

来源:互联网 发布:孩儿知错 请父亲责罚 编辑:程序博客网 时间:2024/05/09 21:55

有时定义回调的时候总被后面的参数所覆盖,在上下文中用匿名函数可以轻松解决这个问题。

for(var i=0; i<totalTblList.length; i++)
          {
              var idPre="#"+totalTblList[i];
              var columns = totalColumms[i];

(function(idPre, columns){
              jQuery(idPre+"Table").navButtonAdd(idPre+'TablePager',{
                caption:"导入", buttonicon:"ui-icon-plusthick", onClickButton: function(){ $(idPre+"ImportDialog").dialog("open");}, position:"last"
                })
                 .navSeparatorAdd(idPre+'TablePager',{sepclass:'ui-separator',sepcontent:''})
                 .navButtonAdd(idPre+'TablePager',{
                caption:"导出", onClickButton: function(){
                    exportImp(idPre+"ImportDialog", idPre+"Table", columns);
                }})
                .navSeparatorAdd(idPre+'TablePager',{sepclass:'ui-separator',sepcontent:''})
                 .navButtonAdd(idPre+'TablePager',{
                caption:"清空", buttonicon:"NONE", onClickButton: function(){
                    $(idPre+"Table").jqGrid("clearGridData");
                }}) .navSeparatorAdd(idPre+'TablePager',{sepclass:'ui-separator',sepcontent:''})
                 .navButtonAdd(idPre+'TablePager',{
                caption:"更新到服务器", buttonicon:"NONE", onClickButton: function(){
                    var obj ={};
                    obj[totalBackendName[idPre]] = exportImpInner(idPre+"Table",columns);
                    uploadjs("#statusPanel", totalBackendName[idPre]
                        , obj
                        );
                }}) .navSeparatorAdd(idPre+'TablePager',{sepclass:'ui-separator',sepcontent:''}).navButtonAdd(idPre+'TablePager',{
                caption:"版本", buttonicon:"NONE", onClickButton: function(){
                    openVersion('', totalBackendName[idPre])
                }})
                ;
                ;
              $(idPre+"TablePager_left").css("width", "100%");
          })(idPre, columns);

}

原创粉丝点击