diff options
-rw-r--r-- | src/traversing.js | 8 | ||||
-rw-r--r-- | test/unit/event.js | 17 |
2 files changed, 14 insertions, 11 deletions
diff --git a/src/traversing.js b/src/traversing.js index 625b9f4c9..321c25197 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -1,7 +1,7 @@ var runtil = /Until$/, rparentsprev = /^(?:parents|prev(?:Until|All))/, isSimple = /^.[^:#\[\.,]*$/, - POS = jQuery.expr.match.globalPOS, + rneedsContext = jQuery.expr.match.needsContext, // methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, @@ -72,9 +72,9 @@ jQuery.fn.extend({ is: function( selector ) { return !!selector && ( typeof selector === "string" ? - // If this is a positional selector, check membership in the returned set + // If this is a positional/relative selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". - POS.test( selector ) ? + rneedsContext.test( selector ) ? jQuery( selector, this.context ).index( this[0] ) >= 0 : jQuery.filter( selector, this ).length > 0 : this.filter( selector ).length > 0 ); @@ -85,7 +85,7 @@ jQuery.fn.extend({ i = 0, l = this.length, ret = [], - pos = POS.test( selectors ) || typeof selectors !== "string" ? + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? jQuery( selectors, context || this.context ) : 0; diff --git a/test/unit/event.js b/test/unit/event.js index 502649a90..dacb03355 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -2342,17 +2342,20 @@ test("jQuery.off using dispatched jQuery.Event", function() { .remove(); }); -test( "delegated event with delegateTarget-relative selector (#)", function() { - expect(1); - var markup = jQuery( '<ul><li><ul id="u1"><li id="f1"></li></ul></li>' ).appendTo("body"); +test( "delegated event with delegateTarget-relative selector", function() { + expect(2); + var markup = jQuery( '<ul><li><a id="a0"></a><ul id="ul0"><li><a id="a0_0"></a></li><li><a id="a0_1"></a></li></ul></li></ul>' ).appendTo("body"); markup - .find("#u1") - .on( "click", "li:first", function() { - ok( this.id === "f1" , "first li under #u1 was clicked" ); + .on( "click", ">li>a", function() { + ok( this.id === "a0", "child li was clicked" ); + }) + .find("#ul0") + .on( "click", "li:first>a", function() { + ok( this.id === "a0_0" , "first li under #u10 was clicked" ); }) - .find("#f1").click().end() .end() + .find("a").click().end() .remove(); }); |