Hi Klaus,

Thanks for that, I'll try and absorb that over a cup of tea :)

Any idea about my question about calling a jquery plugin function from
within itself?

Thanks
Tom

On 14/03/07, Klaus Hartl <[EMAIL PROTECTED]> wrote:

Tom Holder schrieb:
> Cheers Sam,
>
> That doesn't make a lot of sense to my I have to be honest.
>
> 1. Why are you starting with (function($)
> 2. Why $.fn inside this block? why not jQuery.fn
> 3. What's (jQuery) on the end of the function?
>
> Sorry... OO Javascript is a whole new world of Pain for me! :)
>
> Thanks
> Tom

Hey Tom, i think that it's not OO style at all, it is pretty much
functional programming. But that doesn't matter at all.

What that construct does is simulating a block scope (JavaScript has
only function wide variable scope) by creating an anonymous function
(you may also heard of lambda) inside the parentheses, that is called
immediatly with passing in a parameter, which is in this case the jQuery
object. To name the parameter "$" is just for convenience, to be able to
use what we also use in our daily jQuery coding that is. You could also
have named it foobar:

(function(foobar) {

     foobar.fn.something = ...

})(jQuery);

The parentheses around the anonymous function are required to return the
value of whats inside of them. The following won't work:

function(foobar) {

     foobar('#id').show();

}(jQuery);

For a better understanding, let's not use an anonymous function. The
first example is the same as:

function scope($) {

     $.fn.something = ...

}
scope(jQuery);


Read more about that here:
http://www.svendtofte.com/code/practical_functional_js/



-- Klaus



_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/




--
Tom Holder

Technical Director
SimpleWeb Limited
Great websites. Low cost. No catch.

http://www.simpleweb-online.co.uk/
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to