2012-04-01 88 views
2

當有人點擊某個東西然後聲明一個變量時,如何在JavaScript中聲明一個變量,具體取決於函數將返回的值,這可能是真值或假值。在onclick中聲明一個變量?

onclick="var varable = somefunction(); " 

那麼我就要成爲變量比較的onclick裏面,然後執行功能。因此,如果該變量爲true,則會執行一個函數,如果該函數爲false,它將返回。

這些事情都可以在js中完成嗎?

+1

你想執行一個函數來返回一個值,然後,根據該值,你會(或不會)調用另一個函數嗎? – 2012-04-01 09:08:48

+0

回聲塞爾吉奧,爲什麼不只是在'somefunction'裏設置變量,然後在'somefunction'裏面調用你的其他函數呢? – McGarnagle 2012-04-01 09:11:32

回答

3

解決你的問題,最簡單的方法是通過三元運算符?

onclick="myTestFunction() ? onTrueFunction() : onFalseFunction();" 

所以最終你不需要申報什麼。

1

你申報你的JavaScript的全球範圍內的變量,並分配給它的點擊處理程序:

var myVariable; 

<a href="xxx" onclick="myVariable = somefunction();"> 

或者,您將創建點擊處理程序做的工作給你另一個功能:

function dispatchFunction() { 
    if (myVariable) { 
     someFunction1(); 
    } else { 
     someFunction2(); 
    } 
} 


<a href="xxx" onclick="dispatchfunction();"> 

或者,這取決於你想要什麼:

function dispatchFunction() { 
    if (someFunction0()) { 
     someFunction1(); 
    } else { 
     someFunction2(); 
    } 
} 

的一點是,通常只需從點擊處理函數中調用一個函數並讓該函數完成您所需的任何工作,而不是將多個語句內聯到點擊處理程序HTML中。

3

問題是,通過使用var,該變量的本地範圍是該點擊處理程序,而不是全局對象,即window。最簡單的解決將是直接設置在window該變量作爲屬性值:

onclick="window.varable = somefunction();" 

然後,可以從代碼的其他部分訪問varable(原文如此)

也就是說,將應用程序邏輯直接放入onclick屬性通常是一個壞主意。