Ticket #8777 undelegate by namespace
This commit is contained in:
parent
2ed81b44be
commit
4b0c26f0af
13
src/event.js
13
src/event.js
|
@ -868,10 +868,10 @@ function trigger( type, elem, args ) {
|
||||||
// Create "bubbling" focus and blur events
|
// Create "bubbling" focus and blur events
|
||||||
if ( document.addEventListener ) {
|
if ( document.addEventListener ) {
|
||||||
jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
|
jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
|
||||||
|
|
||||||
// Attach a single capturing handler while someone wants focusin/focusout
|
// Attach a single capturing handler while someone wants focusin/focusout
|
||||||
var attaches = 0;
|
var attaches = 0;
|
||||||
|
|
||||||
jQuery.event.special[ fix ] = {
|
jQuery.event.special[ fix ] = {
|
||||||
setup: function() {
|
setup: function() {
|
||||||
if ( attaches++ === 0 ) {
|
if ( attaches++ === 0 ) {
|
||||||
|
@ -1027,6 +1027,14 @@ jQuery.each(["live", "die"], function( i, name ) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( name === "die" && !types &&
|
||||||
|
origSelector && origSelector[0] === "." ) {
|
||||||
|
|
||||||
|
context.unbind( origSelector );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
if ( jQuery.isFunction( data ) ) {
|
if ( jQuery.isFunction( data ) ) {
|
||||||
fn = data;
|
fn = data;
|
||||||
data = undefined;
|
data = undefined;
|
||||||
|
@ -1184,3 +1192,4 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
|
||||||
});
|
});
|
||||||
|
|
||||||
})( jQuery );
|
})( jQuery );
|
||||||
|
|
||||||
|
|
|
@ -685,7 +685,7 @@ test("hover()", function() {
|
||||||
|
|
||||||
test("mouseover triggers mouseenter", function() {
|
test("mouseover triggers mouseenter", function() {
|
||||||
expect(1);
|
expect(1);
|
||||||
|
|
||||||
var count = 0,
|
var count = 0,
|
||||||
elem = jQuery("<a />");
|
elem = jQuery("<a />");
|
||||||
elem.mouseenter(function () {
|
elem.mouseenter(function () {
|
||||||
|
@ -693,7 +693,7 @@ test("mouseover triggers mouseenter", function() {
|
||||||
});
|
});
|
||||||
elem.trigger('mouseover');
|
elem.trigger('mouseover');
|
||||||
equals(count, 1, "make sure mouseover triggers a mouseenter" );
|
equals(count, 1, "make sure mouseover triggers a mouseenter" );
|
||||||
|
|
||||||
elem.remove();
|
elem.remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1956,6 +1956,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);
|
||||||
|
|
||||||
|
@ -1982,8 +2003,8 @@ test("window resize", function() {
|
||||||
|
|
||||||
test("focusin bubbles", function() {
|
test("focusin bubbles", function() {
|
||||||
expect(5);
|
expect(5);
|
||||||
|
|
||||||
var input = jQuery( '<input type="text" />' ).prependTo( "body" ),
|
var input = jQuery( '<input type="text" />' ).prependTo( "body" ),
|
||||||
order = 0;
|
order = 0;
|
||||||
|
|
||||||
jQuery( "body" ).bind( "focusin.focusinBubblesTest", function(){
|
jQuery( "body" ).bind( "focusin.focusinBubblesTest", function(){
|
||||||
|
@ -1996,12 +2017,12 @@ test("focusin bubbles", function() {
|
||||||
|
|
||||||
// DOM focus method
|
// DOM focus method
|
||||||
input[0].focus();
|
input[0].focus();
|
||||||
|
|
||||||
// To make the next focus test work, we need to take focus off the input.
|
// To make the next focus test work, we need to take focus off the input.
|
||||||
// This will fire another focusin event, so set order to reflect that.
|
// This will fire another focusin event, so set order to reflect that.
|
||||||
order = 1;
|
order = 1;
|
||||||
jQuery("#text1")[0].focus();
|
jQuery("#text1")[0].focus();
|
||||||
|
|
||||||
// jQuery trigger, which calls DOM focus
|
// jQuery trigger, which calls DOM focus
|
||||||
order = 0;
|
order = 0;
|
||||||
input.trigger( "focus" );
|
input.trigger( "focus" );
|
||||||
|
@ -2027,3 +2048,4 @@ test("event properties", function() {
|
||||||
}).click();
|
}).click();
|
||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue