Hi Alex,

You have me confused with someone else.  As much as I'd love to spend two
years in NZ, I've never done so (yet).  I don't even have a blog!  :-)   And
you don't have to google for Mike Geary, he posts here often (but not often
enough!)

Cheers!

Mike


On Fri, Feb 15, 2008 at 5:13 PM, Alexandre Plennevaux <[EMAIL PROTECTED]>
wrote:

>
> it does help.and i'll immediatly google up "michael geary" :)
>
> on a side note, i'm thinking about migrating to New Zealand. I read on
> your blog you spent 2 years there. How was it like? Did you enjoy it?
> Pros and cons ? feel free to use my email alexandre(AT)lab-au.com...
>
> thank you again !
>
> On Feb 15, 2008 10:53 PM, Mike Alsup <[EMAIL PROTECTED]> wrote:
> > Hi Alex,
> >
> > Sorry for the short response earlier.  Functions have 'apply' and 'call'
> > methods which you can use to control the value of 'this' when the
> function
> > executes.  So in my example, I invoke onIni by calling its apply method,
> and
> > I pass it 'this' which at the time is a DOM element, so when onIni
> executes
> > 'this' is that same DOM element.
> >
> > Now you actually had several problems in that plugin code you posted:
> >
> >
> >  $.fn.myplugin= function(options,callback){
> >      return this.each(function(index){
> >             $this = $(this);
> >             uniq = 'iAmNumber_' + index;
> >            $this.options.onIni();
> >     });
> >  }
> >
> > For starters, that code creates global variables named $this and uniq
> > because you forgot the var keyword.  Remember to always use var to scope
> > your variables.  Next, you're trying to access the 'options' property of
> the
> > $this object.  $this is a jQuery object and it doesn't have an options
> > property so I would expect a script error on that line.   The options
> object
> > is in scope because it is passed into the plugin function so you just
> access
> > it directly.  But if you invoke onIni like this:
> >
> > options.onIni()
> >
> > then when onIni executes 'this' will be the options object, which is not
> > what you want.  To set 'this' we use apply:
> >
> > options.onIni.apply(this)
> >
> > You can set up 'this' to be whatever you want, but what your onIni
> function
> > expects to find there is a DOM element so that's what you should pass to
> > apply.
> >
> > Hope this helps.  There are lots of online resources that can explain it
> > much better than I can.  I'm no Michael Geary!
> >
> > Mike
> >
> >
> >
> >
> >
> >
> >
> > On Fri, Feb 15, 2008 at 4:26 PM, Alexandre Plennevaux
> > <[EMAIL PROTECTED]> wrote:
> > >
> > > Well, it's now tested, and it works!!
> > >
> > > I'm very sorry for this probably stupid question, i'm learning
> > > javascript from scratches. Could you explain or point me to the theory
> > > behind this?
> > >
> > > thank you so much
> > >
> > > alex
> > >
> > >
> > >
> > > On Feb 15, 10:14 pm, "Mike Alsup" <[EMAIL PROTECTED]> wrote:
> > > > Alexandre,
> > > >
> > > > This is untested, but I think it's closer to what you're looking
> for:
> > > >
> > > > $.fn.myplugin= function(options,callback) {
> > > >     return this.each(function(index) {
> > > >            this.uniq = 'iAmNumber_' + index;
> > > >           options.onIni.apply(this);
> > > >    });
> > > >
> > > > }
> > > >
> > > > On Fri, Feb 15, 2008 at 4:00 PM, Alexandre Plennevaux
> > <[EMAIL PROTECTED]>
> > >
> > >
> > >
> > > > wrote:
> > > >
> > > >
> > > >
> > > > > hey mates,
> > > >
> > > > > I didn't find an answer to my week-old question so i'll rephrase
> to
> > > > > simplify and focus on just the little bit of knowledge i need from
> you
> > > > > guys:
> > > >
> > > > > say i want to create a function that performs some jquery methods
> on
> > an
> > > > > element.
> > > >
> > > > > function doThis(){
> > > > >      $(this).text('i've been changed');
> > > > >      alert("my uniq="+this.uniq);
> > > > > }
> > > >
> > > > > now, inside a plugin, i want to use that function as an option
> value
> > > >
> > > > > $('div.toBeSelected').myplugin({onIni:doThis});
> > > >
> > > > > here is my pseudo plugin:
> > > >
> > > > > $.fn.myplugin= function(options,callback){
> > > > >     return this.each(function(index){
> > > > >            $this = $(this);
> > > > >            uniq = 'iAmNumber_' + index;
> > > > >           $this.options.onIni();
> > > > >    });
> > > > > }
> > > >
> > > > > So far, the function is called, but the alert returns "my uniq =
> > > > > undefined" and the text() command is not performed.  Why, oh why ?
> > > >
> > > > > --
> > > > > Alexandre Plennevaux
> > > > > LAb[au]
> > > >
> > > > >http://www.lab-au.com
> > >
> >
> >
>
>
>
> --
> Alexandre Plennevaux
> LAb[au]
>
> http://www.lab-au.com
>

Reply via email to