On 14/03/07, Tom Holder <[EMAIL PROTECTED]> wrote:
> Thanks for that Sam.
>
> One further thing you might be able to help with. I have a function that
> loops through some elements and then inside attaches a click even that
> results in the HTML being reloaded... hence I need to call the function from
> within itself.
>
> My code looks like (I've put a note in where the call should be):
>
> Thanks!
> Tom
>
> jQuery.fn.plotPins = function(gMap, gMarkerMan) {
>
>   //Reference to this jquery function.
>   var jElems = this;
>
>   return this.each(function(){
>
>     var listingID =
> jQuery(this).attr("id").replace(/pinned_/,"");
>     var lat = jQuery("abbr.lat", this).attr("title");
>     var lng = jQuery(" abbr.lng", this).attr("title");
>
>     //Create the marker
>     var gPoint = new GLatLng(lat, lng);
>     var gMarker = new GMarker(gPoint, {icon: this._gIcon, draggable: true,
> bouncy: true});
>
>     gMarkerMan.addMarker(gMarker, 1);
>     //pinnedListings[listingID] = gMarker;
>
>     //Attach the pull pin event.
>     jQuery("ul.pinned_action li.pinned_remove a",this).click(function(){
>
>         //Take the pin off the map.
>         gMap.removeOverlay(gMarker);
>
>         $("#pinned").load("ajax/GetPinned.ashx", {pull:
> listingID}, function(){
>
>              //I want to call the current function from itself here... my
> attempt that doesn't work is:
>             //jQuery(jElems).plotPins(gMap, gMarkerMan);
>
>         });
>
>         //Do ajax here to pull the pin.
>         return false;
>     });
>
>     //Add the marker to the marker manager
>     //this._
>
>   });
>
> };

Have you tried 'this' instead of 'jElems'?:

jQuery(this).plotPins(gMap, gMarkerMan);

I've done it that way for some of my plugins, although admittedly not
within an AJAX request.

>
>
> On 14/03/07, Sam Collett <[EMAIL PROTECTED]> wrote:
> >
> > On 14/03/07, Tom Holder < [EMAIL PROTECTED]> wrote:
> > > Cheers Sam,
> > >
> > > That doesn't make a lot of sense to my I have to be honest.
> > >
> > > 1. Why are you starting with (function($)
> > This means that it would execute immediately and any variables
> > contained within the function won't be seen by other scripts.
> >
> > > 2. Why $.fn inside this block? why not jQuery.fn
> > Results in a saving of code. It is whatever you used in 1.
> >
> > > 3. What's (jQuery) on the end of the function?
> > jQuery is the jQuery object and is passed on as the parameter (the $
> > at the start).
> >
> > A (hopefully) simpler example:
> >
> > (function(parameter1, parameter2) {
> >         var space = " ";
> >         alert(parameter1 + space + parameter2); // alerts 'hello world'
> > })("hello", "world");
> > alert(space); // space is not defined
> >
> > It is one of the suggestions for authoring plugins:
> >
> http://docs.jquery.com/Plugins/Authoring#Custom_Alias_in_plugin_code
> >
> > >
> > > Sorry... OO Javascript is a whole new world of Pain for me! :)
> > >
> > > Thanks
> > > Tom
> > >
> > >
> > > On 14/03/07, Sam Collett < [EMAIL PROTECTED]> wrote:
> > > >
> > > > On 14/03/07, Tom Holder < [EMAIL PROTECTED]> wrote:
> > > > > Bit of a simple question this I'm sure but how do I scope a variable
> to
> > > a
> > > > > plugin I'm creating and not expose it beyond my plugin? I do want
> the
> > > > > variable to be accessible to all the methods in my plugin though.
> > > > >
> > > > >  Thanks
> > > > > Tom
> > > >
> > > > You could write your plugin like this:
> > > >
> > > > (function($) {
> > > >     var myvar = "Element number: ";
> > > >     $.fn.myplugin = function() {
> > > >         return this.each( function(i) {
> > > >             alert(myvar + i);
> > > >         });
> > > >     }
> > > > })(jQuery);
> > > > alert(myvar); // undefined
> > > >
> > > > _______________________________________________
> > > > jQuery mailing list
> > > > discuss@jquery.com
> > > > 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
> > > discuss@jquery.com
> > > http://jquery.com/discuss/
> > >
> > >
> >
> > _______________________________________________
> > jQuery mailing list
> > discuss@jquery.com
> > 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
> discuss@jquery.com
> http://jquery.com/discuss/
>
>

_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to