jQuery中單擊功能被定義爲.click(handler)
,爲什麼我不能做到以下幾點:爲什麼a.click(b.toggle)不起作用?
var object1 = $("#object1");
var object2 = $("#object2");
object1.click(object2.toggle);
以下,然而,工作原理:
var object1 = $("#object1");
var object2 = $("#object2");
object1.click(function() { object2.toggle(); });
現在的問題是,爲什麼我必須將函數處理函數封裝在另一個函數中才能使其工作?我知道,在第一個例子中,toggle
功能將接收所有事件數據,但似乎並沒有影響(也,也會有相同的其他功能,如show
,hide
,fadeIn
等)
UPDATE:
關於爭論,這也似乎工作:
var object1 = $("#object1");
var object2 = $("#object2");
object1.click(function(ev) { object2.toggle(ev); });
所以,無效的論點似乎並不成爲一個問題。
答:
問題的解釋是什麼@SeanWessell說,這裏是一個展示的jsfiddle在某種程度上,我的理解是更好的問題。但它與jQuery無關:https://jsfiddle.net/diegojancic/nffcnu8t/
嘛'點擊()'方法需要一個回調,你才能把它需要的功能。 ECMA腳本6中可能有一種方法可以關閉,但我不確定。 – Nicolas
'toggle'也是一個函數,應該是一個有效的回調,因爲我看到它。 –
@charlietfl click函數只接收一個參數,如果我做了'function(a,b,c){}',那麼'b'和'c'是'undefined'。 –