在Javascript应用程序中,我在运行时根据用户输入创建一个事件处理程序,如下所示:
$( "#someElement" ).on( "click", function( e ){
someFunction( e, param1, param2, param3 );
});
如您所见,someFunction接受在创建事件处理程序时可用的其他参数(超出事件对象)。
如何从创建它的命名空间外部手动触发此事件处理程序?我创建了一个“虚拟”事件对象,并尝试了:
$( "#someElement" ).trigger( "click", [dummyEventObj] );
但是,这没效果。 someFunction被调用,但param1,param2和param3不存在。有任何想法吗?
答案 0 :(得分:0)
我意识到问题在于我的事件处理函数someFunction
需要一些额外的逻辑来正确处理手动事件触发器。我没有向处理click
事件的函数部分添加更多逻辑,而是创建了一个名为navbutton
的自定义事件,并为该自定义事件添加了someFunction
的逻辑。然后,我根据用户输入为该自定义事件设置了一个手动触发器,现在它运行良好。所以,MinusFour对他/她的评论是正确的:在初始化时传递给someFunction
的参数总是在那里......只是正确处理手动触发的逻辑不是。