2

我有一个使用 jquery ui 小部件工厂创建的小部件。我正在尝试像这样将一些数据传递给我的自定义事件

this._trigger('myCustomEvent', ['Test', 'Test2']);

但在我的处理程序上,我不确定如何访问自定义参数

onMyCustomEvent: function(event, ui) {
   ...
}

我尝试向我的处理程序添加参数

onMyCustomEvent': function(event, ui, param1, param2) {...}

但这不起作用: param1 和 param2 是undefined

4

1 回答 1

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});
于 2013-11-29T05:09:33.160 回答