在腳本#,我有以下幾點:當我觸發事件時,如何將參數傳遞給事件處理程序?
jQuery.Select("#someId").Trigger("item-added", new object[]{"ball"});
這編譯成以下JavaScript:
$('#someId').trigger('item-added', [ 'ball' ]);
上面的代碼工作正常。問題出現在聲明可以接收參數數組的事件處理程序中。
爲了讓我的處理程序來接收參數數組,就必須有一個簽名,例如:
public void OnItemAdded(jQueryEvent jqe, Object[] args)
然而,唯一可用的類型是:
public delegate void jQueryEventHandler(jQueryEvent e)
正因爲如此,當處理程序被調用時,參數無處可尋。
我讀過關於將參數傳遞給jQuery api文檔(http://api.jquery.com/trigger)上的事件處理程序的其他方法,並且它們在腳本#中似乎不可行。
考慮使用封閉 - - 它可能不是「最好」的答案,但它應該起作用。 (我只能希望Script#知道如何生成閉包;-) – 2011-06-11 19:13:12
抱怨'Script#'應該實現這個功能。你可以嘗試猴子補丁'trigger'和'bind',但上帝知道你會如何在'Script#'中做到這一點 – Raynos 2011-06-11 19:18:31
另外一個偷偷摸摸的建議,如果你有機會學習js而不是用最後期限。 – Raynos 2011-06-11 19:25:53