2011-04-21 48 views
6

en.onclick = setCookie('english');的onclick地沒有點擊

爲什麼這是否得到,甚至沒有點擊它解僱解僱?

我有3個標誌應設置cookie,以他們的語言機智點擊當最後一個總是被馬上解僱......

+0

也許你可以粘貼一些代碼是什麼? – 2011-04-21 12:13:01

回答

17

您上面的代碼評估setCookie('english')並將其返回值(如果有)放入en.onclick。爲了將它指定爲事件處理程序,它包裝成一個功能:

en.onclick = function(){ 
    setCookie('english'); 
}; 
+0

好吧,我明白了。你怎麼能區分一個人將一些東西傳遞給一個函數(就像你在這裏做的那樣)或者評估它(像我一樣) – Jarco 2011-04-21 12:16:08

+2

@Jarco由於你正在使用回調函數,你總是需要給一個函數來調用。事件處理程序總是期待回調。 – JohnP 2011-04-21 12:18:16

+0

可能是一個新手問題:回調是什麼意思? – Jarco 2011-04-21 12:24:38

4

,因爲你必須使用類似的東西

en.onclick=function(){ 
    setCookie('english'); 
} 
3

因爲你'正在調用方法setCookie(...)。試試這個:

en.onclick = setCookie; 

用方括號調用方法;沒有你把它作爲一個對象。

或者試試這個:

en.onclick = function() { setCookie('english') }; 

在這裏,我們創建一個新的函數,它們調用setCookie使用適當的參數。

2

嗯,這是因爲你正在運行的方法和分配結果en.onclick。

你可能想要做我們

en.onclick = function(){setCookie('english');};