views:

56

answers:

3

When I look at the JQuery plugin code, it almost seems to me that we are creating a function (although we use the JQuery.fn syntax) Functionally, what's a difference between a function and a plugin?

+2  A: 

A function is just a normal JavaScript function, for example:

function doSomething(param) {
  alert(param);
}

A plugin is intended to be run on a set of elements, for example:

jQuery.fn.plugin = function(param) {
  return this.attr('something', param);
}

This would set the 'something' attribute on all elements it was called on, like this:

$('.selector').plugin('value');

If you intend to use the function on a set of elements, like in a jQuery chain, then a plugin may be the answer for you...if you're just calling a function and doing stuff, really having nothing to do with a set of elements, use a plain named function.

Nick Craver
"fun" => "run"?
Hello71
@Hello71 - Can't it be both??? Yes that was a typo, thanks :)
Nick Craver
+1  A: 

Basically a jQuery plugin is a function that is meant to extend jQuery's functionality, and can be applied to selectors more "naturally" than regular functions.

Nico
A: 

The difference is that using $.fn means you can call the function chained onto any jQuery object

Gareth