What I've noticed is that removing an event actually removes the
function not the actual "click" event – don't know whether this a
MooTools, but it seems odd that removing an event doesn't really
output the element as it never had an event attached in the first
place:

No events attached (also what I would expect after removing an event):
Object

Events attached: Object keys[1] values[1]

Events removed: Object keys[0] values[0]

Is that how it should work?

Best,
Oskar

On Dec 21, 6:25 pm, ibolmo <[email protected]> wrote:
> This is fine but what if I wanted to have multiple attached methods
> for a type of event. removeEvent can remove all events or just one of
> the methods attached to that type.
>
> By the way, addEvent only attaches methods to the type of event if the
> function is not presently attached. Same for removeEvent. I like
> hasEvent, but if you know what you're attaching and removing then
> there's no point for checking.
>
> On Dec 21, 10:33 am, nwhite <[email protected]> wrote:
>
> > Native.implement([Element, Window, Document], {
> >         hasEvent: function(type){
> >                 var events = this.retrieve('events', {});
> >                 if (events && events[type]) return true;
> >                 else return false;
> >         }
>
> > });
>
> > if( el.hasEvent('event') ) el.removeEvent('event');
> > el.addEvent('event');
>
> > On Sun, Dec 21, 2008 at 5:58 AM, Oskar Krawczyk 
> > <[email protected]>wrote:
>
> > > Thanks Nathan, I'll give this solution a go if I don't figure out any
> > > simpler way.
> > > Also, it's not like I don't want to replace the attached event,
> > > because I do – that's the whole point.
>
> > > @Guillermo, no "beforeunload" is not what I'm looking for – using it
> > > wouldn't help me in any way I'm afraid.
>
> > > Best,
> > > Oskar
>
> > > On Dec 21, 4:19 am, nwhite <[email protected]> wrote:
> > > > What if you had a LinkManager class. Instead of using addEvent you have
> > > > something like 'register' where you pass the element and your html obj.
> > > If
> > > > the element has already been 'registered' in your class, just ignore.
> > > Else
> > > > attach whatever you need.
>
> > > > On Sat, Dec 20, 2008 at 11:05 PM, Guillermo Rauch <[email protected]>
> > > wrote:
> > > > > Events don't get overwritten, you can add multiple events to the same
> > > > > element.Plus, I think the beforeunload event is what you're looking
> > > for.
>
> > > > > window.addEvent('beforeunload', function() {
> > > > >   if(MySite.hasToStop) return 'Your document has not been saved.';
> > > > > });
>
> > > > > On Sat, Dec 20, 2008 at 11:33 PM, Oskar Krawczyk <
> > > [email protected]
> > > > > > wrote:
>
> > > > >> Hi Folks, hope you're well!
>
> > > > >> Please consider the scenario below:
>
> > > > >> 1. A user gets a form he might or might not fill.
>
> > > > >> 2. If a user has modified the field, every link on the webpage should
> > > > >> get an event applied to itself.
>
> > > > >> 3. Clicking on one of the links would display a popup (a html one, 
> > > > >> not
> > > > >> the alert() thing) asking for confirmation whether we want to leave
> > > > >> the page without saving or not.
>
> > > > >> 4. Now, in some cases a link on the page would already have an event
> > > > >> attached – bummer, it gets overwritten by the new one and we're left
> > > > >> with out pants down.
>
> > > > >> You can see my pain. I was considering storing the default event –
> > > > >> this.store('default:event', e) – but that would clearly work only 
> > > > >> when
> > > > >> the actual event gets triggered.
>
> > > > >> Maybe it's the late hour but I don't see any easy solution to get
> > > > >> successfully through the scenario.
>
> > > > >> Any suggestions?
>
> > > > >> Best,
> > > > >> Oskar
>
> > > > > --
> > > > > Guillermo Rauch
> > > > >http://devthought.com

Reply via email to