2012-04-07 77 views
2

我創建了一個具有調用JavaScript函數的onclick事件的錨點。 JavaScript函數返回一些值。我想在另一個JS函數中使用該值。將onclick值返回給JavaScript函數

例如 loading()將返回一些值,它會傳遞給另一個js函數。如何捕獲並存儲返回值,然後將此值傳遞給該函數?

+1

就證明了以下您的意見,您在解釋這個問題做得很差到底是什麼你需要。也許你應該編輯你的問題來明確用戶體驗(用戶操作和系統響應)應該是什麼。 – Phrogz 2012-04-07 13:29:12

+0

我同意...但自從你的新的,沒有downvotes。 – 2012-04-07 13:37:45

回答

2

你可以簡單地使用內部函數調用外部函數嗎?

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

情況就像onclick返回的值,我必須存儲和傳遞其他js函數,這將在點擊另一個錨時被調用。 – Ganesh 2012-04-07 12:52:29

+0

啊..試着設置一個變量。我會更新我的例子。 – 2012-04-07 12:56:21

+0

-1使用'onclick'屬性,而不是在JavaScript中附加事件處理程序。 – Phrogz 2012-04-07 13:17:27

-1

是這樣的嗎?

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

如果myFunction()是你原來的onClick代碼,它會被傳遞給loading之後。

+0

實際上,我想存儲該返回值,然後在不同的調用中使用它。 – Ganesh 2012-04-07 12:32:24

0

a)使用global variable如(also

var passVar=null; 

function A(){ 
    //set value 
    passVar='hello'; 
} 

function B(){ 
    //get value 
    alert(passVar); 
} 

B)如果你的函數是在消費儲值另一頁上,你可能會使用setItem(),getItem()和瀏覽器的更多高級功能來使用b rowser session storage機制

+0

@ Phrogz-它正在使用cookie,因爲我想在另一個頁面上使用返回值,我將它存儲到cookie中並再次使用它,所有人都感謝您的幫助。 – Ganesh 2012-04-09 06:44:35

0

你在評論中提到你想保存它以備後用。您可以使用一個事實,即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); 
+0

我已經編輯了我的答案,以說明您在評論中提到您不想立即使用返回值的事實。 – Phrogz 2012-04-07 13:27:47