Skip to content

Commit

Permalink
Merge branch 'master' of github.com:jquery/jquery
Browse files Browse the repository at this point in the history
  • Loading branch information
jaubourg committed Apr 11, 2011
2 parents 4c3aba9 + e9905b1 commit f6f1cc7
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 14 deletions.
15 changes: 13 additions & 2 deletions src/event.js
Expand Up @@ -304,7 +304,7 @@ jQuery.event = {
} }
event.namespace = namespaces.join("."); event.namespace = namespaces.join(".");
event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");

// Handle a global trigger // Handle a global trigger
if ( !elem ) { if ( !elem ) {
// Don't bubble custom events when global (to avoid too much overhead) // Don't bubble custom events when global (to avoid too much overhead)
Expand Down Expand Up @@ -574,6 +574,9 @@ jQuery.Event = function( src ) {
} }
} }


// Always ensure a type has been explicitly set
this.type = src.type;

// Events bubbling up the document may have been marked as prevented // Events bubbling up the document may have been marked as prevented
// by a handler lower down the tree; reflect the correct value. // by a handler lower down the tree; reflect the correct value.
this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
Expand Down Expand Up @@ -1030,10 +1033,18 @@ jQuery.each(["live", "die"], function( i, name ) {
return this; return this;
} }


if ( name === "die" && !types &&
origSelector && origSelector[0] === "." ) {

context.unbind( origSelector );

return this;
}

if ( data === false || jQuery.isFunction( data ) ) { if ( data === false || jQuery.isFunction( data ) ) {
fn = data || returnFalse; fn = data || returnFalse;
data = undefined; data = undefined;
} }


types = (types || "").split(" "); types = (types || "").split(" ");


Expand Down
11 changes: 8 additions & 3 deletions src/traversing.js
Expand Up @@ -73,9 +73,9 @@ jQuery.fn.extend({
}, },


is: function( selector ) { is: function( selector ) {
return !!selector && (typeof selector === "string" ? return !!selector && ( typeof selector === "string" ?
jQuery.filter( selector, this ).length > 0 : jQuery.filter( selector, this ).length > 0 :
this.filter( selector ).length > 0); this.filter( selector ).length > 0 );
}, },


closest: function( selectors, context ) { closest: function( selectors, context ) {
Expand Down Expand Up @@ -298,13 +298,18 @@ jQuery.extend({


// Implement the identical functionality for filter and not // Implement the identical functionality for filter and not
function winnow( elements, qualifier, keep ) { function winnow( elements, qualifier, keep ) {

// Can't pass null or undefined to indexOf in Firefox 4
// Set to 0 to skip string check
qualifier = qualifier || 0;

if ( jQuery.isFunction( qualifier ) ) { if ( jQuery.isFunction( qualifier ) ) {
return jQuery.grep(elements, function( elem, i ) { return jQuery.grep(elements, function( elem, i ) {
var retVal = !!qualifier.call( elem, i, elem ); var retVal = !!qualifier.call( elem, i, elem );
return retVal === keep; return retVal === keep;
}); });


} else if ( qualifier && qualifier.nodeType ) { } else if ( qualifier.nodeType ) {
return jQuery.grep(elements, function( elem, i ) { return jQuery.grep(elements, function( elem, i ) {
return (elem === qualifier) === keep; return (elem === qualifier) === keep;
}); });
Expand Down
21 changes: 21 additions & 0 deletions test/unit/event.js
Expand Up @@ -2022,6 +2022,27 @@ test("delegate with submit", function() {
jQuery(document).undelegate(); jQuery(document).undelegate();
}); });


test("undelegate() with only namespaces", function(){
expect(2);

var $delegate = jQuery("#liveHandlerOrder"),
count = 0;

$delegate.delegate("a", "click.ns", function(e) {
count++;
});

jQuery("a", $delegate).eq(0).trigger("click.ns");

equals( count, 1, "delegated click.ns");

$delegate.undelegate(".ns");

jQuery("a", $delegate).eq(1).trigger("click.ns");

equals( count, 1, "no more .ns after undelegate");
});

test("Non DOM element events", function() { test("Non DOM element events", function() {
expect(1); expect(1);


Expand Down
12 changes: 3 additions & 9 deletions test/unit/traversing.js
Expand Up @@ -72,7 +72,7 @@ test("is(String|undefined)", function() {
}); });


test("is(jQuery)", function() { test("is(jQuery)", function() {
expect(24); expect(23);
ok( jQuery('#form').is( jQuery('form') ), 'Check for element: A form is a form' ); ok( jQuery('#form').is( jQuery('form') ), 'Check for element: A form is a form' );
ok( !jQuery('#form').is( jQuery('div') ), 'Check for element: A form is not a div' ); ok( !jQuery('#form').is( jQuery('div') ), 'Check for element: A form is not a div' );
ok( jQuery('#mark').is( jQuery('.blog') ), 'Check for class: Expected class "blog"' ); ok( jQuery('#mark').is( jQuery('.blog') ), 'Check for class: Expected class "blog"' );
Expand All @@ -83,7 +83,6 @@ test("is(jQuery)", function() {
ok( !jQuery('#en').is( jQuery('[lang="de"]') ), 'Check for attribute: Expected attribute lang to be "en", not "de"' ); ok( !jQuery('#en').is( jQuery('[lang="de"]') ), 'Check for attribute: Expected attribute lang to be "en", not "de"' );
ok( jQuery('#text1').is( jQuery('[type="text"]') ), 'Check for attribute: Expected attribute type to be "text"' ); ok( jQuery('#text1').is( jQuery('[type="text"]') ), 'Check for attribute: Expected attribute type to be "text"' );
ok( !jQuery('#text1').is( jQuery('[type="radio"]') ), 'Check for attribute: Expected attribute type to be "text", not "radio"' ); ok( !jQuery('#text1').is( jQuery('[type="radio"]') ), 'Check for attribute: Expected attribute type to be "text", not "radio"' );
ok( jQuery('#text2').is( jQuery(':disabled') ), 'Check for pseudoclass: Expected to be disabled' );
ok( !jQuery('#text1').is( jQuery(':disabled') ), 'Check for pseudoclass: Expected not disabled' ); ok( !jQuery('#text1').is( jQuery(':disabled') ), 'Check for pseudoclass: Expected not disabled' );
ok( jQuery('#radio2').is( jQuery(':checked') ), 'Check for pseudoclass: Expected to be checked' ); ok( jQuery('#radio2').is( jQuery(':checked') ), 'Check for pseudoclass: Expected to be checked' );
ok( !jQuery('#radio1').is( jQuery(':checked') ), 'Check for pseudoclass: Expected not checked' ); ok( !jQuery('#radio1').is( jQuery(':checked') ), 'Check for pseudoclass: Expected not checked' );
Expand Down Expand Up @@ -223,10 +222,6 @@ test("closest(Array)", function() {
same( jQuery("body").closest(["span","html"]), [{selector:"html", elem:document.documentElement, level:2}], "closest([body, html])" ); same( jQuery("body").closest(["span","html"]), [{selector:"html", elem:document.documentElement, level:2}], "closest([body, html])" );
}); });


<<<<<<< HEAD
test("not(Selector|undefined)", function() {
expect(11);
=======
test("closest(jQuery)", function() { test("closest(jQuery)", function() {
expect(8); expect(8);
var $child = jQuery("#nothiddendivchild"), var $child = jQuery("#nothiddendivchild"),
Expand All @@ -243,9 +238,8 @@ test("closest(jQuery)", function() {
ok( $child.closest( $body.add($parent) ).is('#nothiddendiv'), "Closest ancestor retrieved." ); ok( $child.closest( $body.add($parent) ).is('#nothiddendiv'), "Closest ancestor retrieved." );
}); });


test("not(Selector)", function() { test("not(Selector|undefined)", function() {
expect(7); expect(11);
>>>>>>> 1a167767305202797cf4c839eb64bd7adfb00182
equals( jQuery("#main > p#ap > a").not("#google").length, 2, "not('selector')" ); equals( jQuery("#main > p#ap > a").not("#google").length, 2, "not('selector')" );
same( jQuery("p").not(".result").get(), q("firstp", "ap", "sndp", "en", "sap", "first"), "not('.class')" ); same( jQuery("p").not(".result").get(), q("firstp", "ap", "sndp", "en", "sap", "first"), "not('.class')" );
same( jQuery("p").not("#ap, #sndp, .result").get(), q("firstp", "en", "sap", "first"), "not('selector, selector')" ); same( jQuery("p").not("#ap, #sndp, .result").get(), q("firstp", "en", "sap", "first"), "not('selector, selector')" );
Expand Down

0 comments on commit f6f1cc7

Please sign in to comment.