-
-
Save getify/579849 to your computer and use it in GitHub Desktop.
$("#foo").click(function(e){ | |
if (e.clientX) { | |
// native mouse click | |
} | |
else { | |
// triggered mouse click | |
} | |
}); |
@jdalton - triggering events is definitely not evil. in my opinion, triggering a native event is bad. triggering a native event and pretending to be that native event with bogus information like fake mousex/mousey values is evil.
@getify Indeed - as a general coding pattern, it's really bad practice. However, the solution is not to remove the support à la
i would consider that kind of code (and the ability to do it in JavaScript and jQuery, etc) wrong and evil
We shouldn't remove democracy just because it lets us do evil, right? ;)
@krawaller -- i mean, i understand your point. not necessarily saying it should be removed, but it should be avoided under almost all cases, just like what crockford says about the "good parts" and "bad parts" -- i definitely consider that a "bad part".
btw, there are some things that are so evil they should be removed... like "document.write"... my new banner: "document.write() must die". :)
Firing events can be used in cross-browser event delegation solutions to normalize inconsistent event bubbling.
Prototype uses DOM events, and their firing, to support custom event's that piggyback off of real events.
This has some advantages like if 1 handler fails the others will continue to execute.
You will end up having issues syncing the two events when one is told to stop bubbling and the other is unaware.
And what do you think would be used to
fire
these secondary custom events? That would be the same API you called evil :D