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
> > > > [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/
> > >
> > >
> >
> > _______________________________________________
> > 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/
>
>
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/