2016-01-21 47 views
0

總之,我這樣做是爲什麼JQuery搞亂我想綁定到點擊處理程序的參數?別的地方</p> <pre><code>function myHandler(a,b,c,d){ doStuffWithMyParams(a,b,c,d); } </code></pre> <p>然後:

jqueryElem.click(myHandler.bind(a,b,c,d)); 

當我這樣做,一些傳遞的參數(A,B)被正確讀取。但第三個(c)是一個JQuery事件對象。我也嘗試綁定參數作爲數組。然後,第一個參數成爲事件對象。

這裏完全困惑。在此感謝您的任何指示。

+0

什麼嘗試傳遞對象而不是數組 – daremachine

+0

是c或d定義的? – epascarello

+0

@epascarello是的。 –

回答

1

建立在epascarello寫了什麼,這應該做的訣竅:

jqueryElem.click(myHandler.bind(this,[a,b,c,d])); 

沒有陣列可能會導致b被視爲eventHandler。注意我使用了一個數組,但它也可以是一個對象,例如。

+0

我認爲你是對的。現在驗證。 –

+1

是的,完全正確。現在我想到了,這很有道理。非常感謝你的幫助。 –

+1

exacly什麼文檔說:)但通過'這'eventType做的伎倆。尼斯順便說一句。 – daremachine

2

隨着代碼myHandler.bind(a,b,c,d),爭論a是結合上下文()使用

所以我的處理程序實際上是看到了這個

function myHandler(b,c,d,event){ 

所以我有一種感覺,你想

jqueryElem.click(myHandler.bind(this, a,b,c,d)); 
+0

這很有道理 - 畢竟,'this'是jquery回調中的一個事件對象。讓我一起去。 –

+0

@ ArcaneCraeda的回答讓我感到它的距離。我相信如果我需要傳遞更少的參數,你的解決方案就可以工作。感謝您將此推向正確的方向。 –

相關問題