1.问题描述
如标题。
2.代码
function allocateRole(uid,username){
var url=encodeURI("/userManage/toAllocateRole.do?userid="+uid);
var dialogId="allocateRoleDialog";
var dialog_iframe_id = "dialog_iframe_" + dialogId;
createDialog("【"+username+"】分配角色", $(window).width()*0.35, $(window).height()*0.46, url, "allocateRoleDialog");
//覆盖按钮
$("#"+dialogId).dialog({
buttons : [ {
id : 'saveButton',
text : '保存',
iconCls : 'icon-ok',
width : 90,
handler : function(){
window.frames[dialog_iframe_id].contentWindow.saveUserRole(); //注:要在这个匿名函数里,访问外层函数的局部变量dialog_iframe_id,有什么办法?
}
}, {
id : 'resetButton',
text : '重置',
iconCls : 'icon-redo',
width : 90,
handler : function(){
var fra=window.frames[dialog_iframe_id].contentWindow;
var nodeList=fra.$('#roleTree').tree('getChecked');
$(nodeList).each(function(i){
fra.$('#roleTree').tree('uncheck',nodeList[i].target);
});
}
} , {
id : 'closeButton',
text : '关闭',
iconCls : 'icon-cancel',
width : 90,
handler : function(){
closeDialog(dialogId);
}
} ]
});
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
问题描述不清楚,不知道你具体要什么样的功能。好好看看作用域链吧,如果作用域内部已经定义了某个属性,那么就不会向外层作用域查找了
从当前函数作用域往外层找,直到window.. 内层不是直接可以调用外层的变量嘛?还要怎么调用啊?
这样~
上面是在chrome的console 里写的简单例子。
fn3和 你的allocateRole函数,结构大致相同。这其实是个
闭包,变量dialog_iframe_id在allocateRole函数执行之后,它的值就固定在handler的闭包里了。作用域问题,内层找不到就找外层