Commit c6cf30a5 authored by Allen J Schmidt Jr's avatar Allen J Schmidt Jr Committed by Dave Methvin

Fix #12739. Keep namespace when triggering with an Event. Close gh-972.

parent b3860807
...@@ -135,3 +135,4 @@ Michael Pennisi <mike@mikepennisi.com> ...@@ -135,3 +135,4 @@ Michael Pennisi <mike@mikepennisi.com>
Markus Staab <markus.staab@redaxo.de> Markus Staab <markus.staab@redaxo.de>
Daniel Gálvez <dgalvez@editablething.com> Daniel Gálvez <dgalvez@editablething.com>
James Huston <james@jameshuston.net> James Huston <james@jameshuston.net>
Allen J Schmidt Jr <cobrasoft@gmail.com>
\ No newline at end of file
...@@ -212,7 +212,7 @@ jQuery.event = { ...@@ -212,7 +212,7 @@ jQuery.event = {
// Event object or event type // Event object or event type
var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType, var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType,
type = event.type || event, 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 // focus/blur morphs to focusin/out; ensure we're not firing them right now
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
......
...@@ -2923,3 +2923,40 @@ asyncTest("trigger click on checkbox, fires change event", function() { ...@@ -2923,3 +2923,40 @@ asyncTest("trigger click on checkbox, fires change event", function() {
start(); start();
}).trigger("click"); }).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" );
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment