有下一个脚本:
function clicker(){
var linkId = "[id*=" + "link]";
var butnId='initial';
$j(linkId).click(function(){
var postfix = $j(this).attr('id').substr(4);
butnId = '#' + 'butn' + postfix;
});
return butnId;
}
函数输出是“初始”值。
如何返回变量 butnId 在点击函数中转换后的实际值?
最佳答案
传递给 click
的函数中的代码只有在元素被点击后才会执行。
您可能需要 clicker
的调用者传入一个回调函数,然后可以由点击函数调用(假设您不想将所需的操作硬编码到点击函数本身) :-
function clicker(callback){
var linkId = "[id*=" + "link]";
var butnId='initial';
$j(linkId).click(function(){
var postfix = $j(this).attr('id').substr(4);
butnId = '#' + 'butn' + postfix;
callback(butnId);
});
return butnId;
}
可能可以重构为:-
function clicker(callback){
var linkId = "[id*=" + "link]";
$j(linkId).click(function(){
var postfix = $j(this).attr('id').substr(4);
callback('#' + 'butn' + postfix);
});
}
关于javascript - 可变范围 js - 返回初始赋值而不是更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1880230/