Thanks! That is exactly what I needed. I didn't think about the fact
that the event target would give me the specific element even if the
listener was higher up the propagation chain.

On Jan 25, 6:48 pm, Ricardo Tomasi <ricardob...@gmail.com> wrote:
> Use event delegation, will give you better performance:
>
> $(document).mouseup(function(e){
>   if (conditionsMet)
>      $(e.target).trigger('customevent', [customdata]);
>
> });
>
> If you want to stick with binding all elements, try:
>
> $("*").mouseup(function(e) {
>    if (conditionsMet)
>      $(this).trigger('customevent', [customData]);
>    e.stopPropagation();
>
> });
>
> - ricardo
> On Jan 25, 6:15 pm, Michael Bleigh <mble...@gmail.com> wrote:
>
> > I am trying to define a custom event that may or may not fire after a
> > given mouseup event. I want it to be bindable to any element but now
> > this is causing problems with jQuery 1.3 custom event propagation. My
> > current implementation is something like this:
>
> > jQuery(function() {
> >   jQuery("*").mouseup(function() {
> >     if (conditionsMet)
> >       jQuery(this).trigger('customevent', [customData]);
> >   });
>
> > });
>
> > This works more or less as expected in 1.2.X, but in 1.3 it ends up
> > triggering multiple times per click because if it triggers on a child,
> > it is both propagating up to the parent and triggering independently
> > on the parent (because of the '*' selector).
>
> > How can I write this in a way that it can bind to any element but
> > prevent triggering for all parent elements during a single event with
> > the exception of propagation?
>
> > Thanks for any help,
> > Michael Bleigh

Reply via email to