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/