为什么要赢得这项工作?
Var" i"工作正常,可以看到返回值,只是当我尝试发送var" i"就像我吼叫一样。
发送给deor_viewer函数的按钮:
<div onclick="deor_viewer('deor','films_deor_ip_full_','1','.jpg')"></div>
功能:
function deor_viewer(folder,name,id,ext) {
var x;
x = 'url(assets/images/films/'+ folder + '/' + name + id + ext;
document.getElementById("deor_ip_viewer_id").style.backgroundImage = x;
var i = id;
return i;
};
HTML按钮调用此函数:
function viewer_right() {
var test = deor_viewer();
alert(test);
}
alert
刚出现&#34;未定义&#34;
它会正常工作,而不是return
与var
答案 0 :(得分:3)
这是因为deor_viewer
函数需要4个参数,其中一个是id
,您稍后将其分配给i
并返回它。
但是当你调用该函数(代码中的 )时,你没有传递任何参数,所以id
是undefined
,这就是你得到的。 / p>
function deor_viewer(folder,name,id,ext) {
var x;
x = 'url(assets/images/films/'+ folder + '/' + name + id + ext;
document.getElementById("deor_ip_viewer_id").style.backgroundImage = x;
var i = id;
return i;
};
<div onclick="alert(deor_viewer('deor','films_deor_ip_full_','1','.jpg'))">click me</div>
<hr/>
<div id="deor_ip_viewer_id">element with id=deor_ip_viewer_id</div>
答案 1 :(得分:1)
您正在调用不带参数的deor_viewer
函数,因此id
参数将为undefined
,并且您将其分配给变量i
并返回该变量。 / p>
答案 2 :(得分:1)
看起来你的函数deor_Viewer
工作得很好,当你打电话给你的其他函数时它会中断,因为你没有把任何东西传递给任何一个函数。如果你期望和任何时候调用函数,你必须传递值。在函数中引用这些值。
这就是您需要使用参数
进行更新// like this:
function viewer_right(folder,name,id,ext) {
var test = deor_viewer(folder,name,id,ext);
alert(test);
}
// then call it the same way
<div onclick="viewer_right('deor','films_deor_ip_full_','1','.jpg')">DIV</div>
所以你最终得到了这个,你通过viewer_right
传递了agruments并进入deor_viewer
:
function deor_viewer(folder,name,id,ext) {
var x;
x = 'url(assets/images/films/'+ folder + '/' + name + id + ext;
//document.getElementById("deor_ip_viewer_id").style.backgroundImage = x;
//var i = id;
console.log('id', id);
return id;
};
// like this:
function viewer_right(folder,name,id,ext) {
var test = deor_viewer(folder,name,id,ext);
alert(test);
}
// then call it the same way
<div onclick="deor_viewer('deor','films_deor_ip_full_','1','.jpg')">deor_viewer</div>
<div onclick="viewer_right('deor','films_deor_ip_full_','1','.jpg')">viewer_right</div>