如何在_trigger上使用自定义小部件的数据?

时间:2013-06-07 20:21:52

标签: javascript jquery jquery-ui jquery-ui-widget-factory

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

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

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

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

我已经尝试将参数添加到我的处理程序

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

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

1 个答案:

答案 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});