JavaScript 関数を呼び出す onclick イベントでアンカーを作成しました。JavaScript 関数は何らかの値を返します。その値を別の JS 関数で使用したい。
たとえば
loading()
、別のjs関数に渡される値を返します。戻り値をキャプチャして保存し、この値をその関数に渡すにはどうすればよいですか?
JavaScript 関数を呼び出す onclick イベントでアンカーを作成しました。JavaScript 関数は何らかの値を返します。その値を別の JS 関数で使用したい。
たとえば
loading()
、別のjs関数に渡される値を返します。戻り値をキャプチャして保存し、この値をその関数に渡すにはどうすればよいですか?
内側の関数で外側の関数を単純に呼び出すことはできますか?
function outerFunc(a)
{
alert(a);
}
function innerFunc()
{
return 'test';
}
onclick="outerFunc(innerFunc());"
または、戻り値を別のイベントで使用する必要がある場合は、変数を設定します。
var retval;
function outerFunc()
{
if(retval) alert(retval);
}
function innerFunc()
{
retval = 'test';
return retval;
}
onclick="return innerFunc();"
別の onclick イベントで
onclick="return outerFunc();"
var passVar=null;
function A(){
//set value
passVar='hello';
}
function B(){
//get value
alert(passVar);
}
b)関数が保存された値を消費している別のページにある場合、 setItem() 、 getItem() 、およびブラウザーのより高度な機能を使用して、ブラウザーセッションストレージ メカニズム を使用している可能性があります
コメントで、後で保存したいと述べました。JavaScript 関数はクロージャーであるため、同じスコープで宣言されたローカル変数にアクセスできるという事実を利用できます。
var clickedValue; // No need to set a value here, just declare is
myAnchor.addEventListener('click',function(evt){
// Call the other function, setting the 'this' scope to be the anchor
// The scope of the variable set it the one above
clickedValue = someFunction.call(myAnchor,evt);
},false);
/* later on… */
otherFunction(clickedValue);
このようなもの?
<a onClick="loading(myFunction());">
元の onClick コードの場合myFunction()
は、loading
後で渡されます。