mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Fix #12739. Keep namespace when triggering with an Event. Close gh-972.
This commit is contained in:
parent
b386080798
commit
c6cf30a56e
@ -134,4 +134,5 @@ Nikita Govorov <nikita.govorov@gmail.com>
|
||||
Michael Pennisi <mike@mikepennisi.com>
|
||||
Markus Staab <markus.staab@redaxo.de>
|
||||
Daniel Gálvez <dgalvez@editablething.com>
|
||||
James Huston <james@jameshuston.net>
|
||||
James Huston <james@jameshuston.net>
|
||||
Allen J Schmidt Jr <cobrasoft@gmail.com>
|
@ -212,7 +212,7 @@ jQuery.event = {
|
||||
// Event object or event type
|
||||
var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType,
|
||||
type = event.type || event,
|
||||
namespaces = [];
|
||||
namespaces = event.namespace ? event.namespace.split(".") : [];
|
||||
|
||||
// focus/blur morphs to focusin/out; ensure we're not firing them right now
|
||||
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
|
||||
|
@ -2923,3 +2923,40 @@ asyncTest("trigger click on checkbox, fires change event", function() {
|
||||
start();
|
||||
}).trigger("click");
|
||||
});
|
||||
|
||||
test( "Namespace preserved when passed an Event (#12739)", function() {
|
||||
expect( 4 );
|
||||
|
||||
var markup = jQuery(
|
||||
"<div id='parent'><div id='child'></div></div>"
|
||||
),
|
||||
triggered = 0,
|
||||
fooEvent;
|
||||
|
||||
markup.find("div")
|
||||
.addBack()
|
||||
.on( "foo.bar", function( e ) {
|
||||
if ( !e.handled ) {
|
||||
triggered++;
|
||||
e.handled = true;
|
||||
equal( e.namespace, "bar", "namespace is bar" );
|
||||
jQuery( e.target ).find("div").each(function() {
|
||||
jQuery( this ).triggerHandler( e );
|
||||
});
|
||||
}
|
||||
})
|
||||
.on( "foo.bar2", function( e ) {
|
||||
ok( false, "foo.bar2 called on trigger " + triggered + " id " + this.id );
|
||||
});
|
||||
|
||||
markup.trigger("foo.bar");
|
||||
markup.trigger( jQuery.Event("foo.bar") );
|
||||
fooEvent = jQuery.Event("foo");
|
||||
fooEvent.namespace = "bar";
|
||||
markup.trigger( fooEvent );
|
||||
markup.remove();
|
||||
|
||||
equal( triggered, 3, "foo.bar triggered" );
|
||||
});
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user