Question

I am writing a jqueryui widget, and I want to get at some widget data when the widget changes (using _trigger). I am using the widget as follows:

$("#myDiv").myWidget({
    change: function(e) {
        alert($("#filter").myWidget('getWidgetData'));
        // do something with the widget data.
    }
});

This code works (the alert fires and show the widget data when the widget calls _trigger). However, is this the correct/best way to get at the widget data inside the change callback ? For isntance, I can't seem to call this.getWidgetData, or e.getWidgetData.

Was it helpful?

Solution

You can attached your data to the change event you triggered. You should have something like :

this._trigger('change', e);

and could use :

this._trigger('change', e, { widgetData: this.getWidgetData() });

The _trigger function accepts A hash of data associated with the event. as its third arg as decribed in the documentation.

And your code will become :

$("#myDiv").myWidget({
    change: function(e, data) {
        alert(data.widgetData);
        // do something with the widget data.
    }
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top