我有一个使用jquery ui widget factory创建的小部件。我正在尝试将一些数据传递给我的自定义事件
this._trigger('myCustomEvent', ['Test', 'Test2']);
但在我的处理程序上我不知道如何访问自定义参数
onMyCustomEvent: function(event, ui) {
...
}
我已经尝试将参数添加到我的处理程序
onMyCustomEvent': function(event, ui, param1, param2) {...}
但这不起作用:param1和param2是undefined
答案 0 :(得分:4)
您需要在_trigger上提供事件参数。该参数可以为空。
this._trigger('myCustomEvent', null, ['Test', 'Test2']);
请参阅:http://api.jqueryui.com/jQuery.widget/#method-_trigger
注意:提供数据时,您必须提供所有三个参数。如果没有要传递的事件,只需传递null。
实施例: http://jsfiddle.net/4Za4m/
$.widget( "jsr.exampleWidget", {
_create: function() {
this.element.click($.proxy(this._handleClick,this));
},
_handleClick: function(event) {
event.preventDefault();
this._trigger('myCustomEvent', null, ['Test', 'Test2']);
}
});
var handleCustomEvent = function(event,param1,param2) {
alert(param1);
alert(param2);
};
$("#clickable").exampleWidget({myCustomEvent : handleCustomEvent});