Hi Keith,
When you call Event#stopObserving, you have to use the exact same
handler that was used for Event#observe.
I have not tested it, but try something like this:
var myHandlerObj = {
handler: function(e) {
Event.stopObserving(this, 'click', myHandlerObj.boundHandler);
}
}
myHandlerObj.boundHandler =
myHandlerObj.handler.bindAsEventListener(myHandlerObj);
Event.observe(myNode, 'click', myHandlerObj.boundHandler);
-Laurent
On Oct 22, 9:48 am, Keith Hughitt <[EMAIL PROTECTED]> wrote:
> Could anyone help tell me what I'm missing?
>
> I could have sworn Prototype already had something like this (a
> function that fires only once and then removes itself), but I couldn't
> find it anywhere so I went about writing the code myself.
>
> First I tried to do it by intuition using several variations of:
>
> Event.observe(myNode, 'click', function(e) {
> /** do stuff **/
> Event.stopObserving(this);
>
> });
>
> After reading up a little more about "stopObserving" in the API, I
> gave it another stab:
>
> var handler = function(e) {
> /** do stuff **/
> Event.stopObserving(myNode, 'click',
> handler.bindAsEventListener(this));
>
> };
>
> Event.observe(myNode, 'click', moveOnce.bindAsEventListener(this));
>
> But the event-handler is still called after the first click.
>
> Any suggestions?
>
> Thanks,
> Keith
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---