views:

12

answers:

2

Some jquery plugin extend widget use _create method, while others use _init method, can someone explain the differences between the two?

Also any guidance on when it is better to extend widget or directly extend jquery.fn?

+1  A: 

The downside to extending widget (as opposed to $.fn) is that you create a dependency on jquery-ui which defines the widget "class". That dependency could be expensive for users of your plugin that don't also use jquery-ui.

As far as _create vs _init goes, I'm pretty sure that _init came first and then in a recent revision they introduced and favor _create. I might be wrong about this, but I believe that _init is still supported. If it is then there shouldn't be any differences between the two.

Ken Browning
Good point on widget. Do you have any replacement of widget if I don't want to introduce additional dependency to jqueryui?
You could just rip out the widget code and include it in your .js file. There was talk about moving widget into jquery itself instead of jqueryui but I don't know if that's been slated for a specific release or not yet.
Ken Browning
+1  A: 

From the jQuery UI Developer Guide:

Once the element is created, all other calls to the widget name where the first parameter is not a string will call the _init() method; if options are passed, the .option() method will be called before the _init() method

fudgey