Reputation: 515
I have created an anchor with an onclick event which calls a JavaScript function. The JavaScript function returns some value. I want to use that value in another JS function.
e.g
loading()
will return some value which will get passed to another js function. How do I capture and store the return value, and then pass this value to that function?
Upvotes: 3
Views: 30601
Reputation: 23113
Can you simply call the outer function with the inner function?
function outerFunc(a)
{
alert(a);
}
function innerFunc()
{
return 'test';
}
onclick="outerFunc(innerFunc());"
Or, if you need to use the return value in another event, set a variable.
var retval;
function outerFunc()
{
if(retval) alert(retval);
}
function innerFunc()
{
retval = 'test';
return retval;
}
onclick="return innerFunc();"
In someother onclick event
onclick="return outerFunc();"
Upvotes: 5
Reputation: 303198
You mentioned in a comment you want to save it for later. You can use the fact that JavaScript functions are closures and thus have access to local variables declared in the same scope:
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);
Upvotes: 0
Reputation: 14470
a) Use a global variable e.g (also)
var passVar=null;
function A(){
//set value
passVar='hello';
}
function B(){
//get value
alert(passVar);
}
b) if your function is on ANOTHER page which is consuming the stored value, you might be using setItem() ,getItem() and more advance features of browsers to use browser session storage mechanism
Upvotes: 0
Reputation: 324620
Something like this?
<a onClick="loading(myFunction());">
If myFunction()
is your original onClick code, it will get passed to loading
afterward.
Upvotes: -1