解决方案1:extraParameters
使用extraParamters
参数作为trigger
jQuery 函数的第二个参数。
$(document).on('customEventName', function(e, dataActionElement) {
// do something
});
$(document).on('click', '[data-action]', function(e) {
e.preventDefault();
$(document).trigger($(this).attr('action'), [$(this)]);
});
从文档:
.trigger( event [, extraParameters ] )
事件
类型:事件
一个 jQuery.Event 对象。
额外参数
类型:数组或PlainObject
要传递给事件处理程序的附加参数。
JSFIDDLE
解决方案 2:自定义事件
根据文档,您还可以创建一个Event
可以设置目标的自定义:
类别:Event
对象
jQuery 的事件系统根据 W3C 标准规范化事件对象。事件对象保证被传递给事件处理程序。原始事件的大多数属性都被复制并规范化到新的事件对象。
$(document).on('customEventName', function(e) {
// e.target is clicked element sent using customEvent
// do something
});
$(document).on('click', '[data-action]', function(e) {
var customEvent = $.Event($(this).attr('action'), {target: this })
$(document).trigger(customEvent);
});
JSFIDDLE