Skip to main content

Bug Tracker

Side navigation

#11845 closed bug (invalid)

Opened June 01, 2012 11:54AM UTC

Closed June 01, 2012 12:10PM UTC

"live" inconsistent behavior with

Reported by: ( axl ) ( dot ) ( ayco ) ( at ) ( gmail ) ( dot ) ( com ) Owned by:
Priority: low Milestone: None
Component: event Version: 1.7.2
Keywords: Cc:
Blocked by: Blocking:
Description

Good morning.

I have found a bug using a multiple selector nested under a second+parameter selector when you later use live().

It's simple, if you use a selector like this

$(".foo, .bar", baz);

selects all .foo and .bar inside baz,

but if you use that selector to attach events with live()

$(".foo, .bar", baz).live("click", function(){alert("yeah");});

attaches the event to all .foo inside baz, and TO ALL .bar IN THE DOCUMENT

You can test it here: http://jsfiddle.net/7eawe/1/

Tested under Chrome 19, FF12, IE8 and IE8 in IE7 compatibility mode.

Regards

Attachments (0)
Change History (1)

Changed June 01, 2012 12:10PM UTC by sindresorhus comment:1

component: unfiledevent
priority: undecidedlow
resolution: → invalid
status: newclosed

From live() docs:

Chaining methods is not supported. For example, $("a").find(".offsite, .external").live( ... ); is not valid and does not work as expected.

$(".foo, .bar", baz); is the same thing as doing $(baz).find(".foo, .bar"), and thus not supported.

Also, please use delegation instead of live.