在脚本#,我有以下几点:当我触发事件时,如何将参数传递给事件处理程序?
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