admin管理员组

文章数量:1279182

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?

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?

Share Improve this question edited Mar 3, 2016 at 5:15 gariepy 3,6746 gold badges23 silver badges34 bronze badges asked Apr 7, 2012 at 11:34 GaneshGanesh 5152 gold badges9 silver badges27 bronze badges 2
  • 1 As evidenced by your ments below, you've done a poor job in this question of explaining exactly what you need. Perhaps you should edit your question to clarify exactly what the user experience (user actions and system responses) should be. – Phrogz Commented Apr 7, 2012 at 13:29
  • I agree... but since your new, no downvotes. – Chris Gessler Commented Apr 7, 2012 at 13:37
Add a ment  | 

4 Answers 4

Reset to default 5

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();"

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

You mentioned in a ment 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);

Something like this?

<a onClick="loading(myFunction());">

If myFunction() is your original onClick code, it will get passed to loading afterward.

本文标签: htmlreturn onclick value to a JavaScript functionStack Overflow