From 04dbdb7525eab7e845100fd17c48889bdb91dc92 Mon Sep 17 00:00:00 2001 From: Robert Katic Date: Thu, 19 Nov 2009 13:11:29 +0800 Subject: [PATCH] Corrected RegExp to match event namespaces. Fixes #5303. --- src/event.js | 4 ++-- test/unit/event.js | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/event.js b/src/event.js index 014fb73..879f049 100644 --- a/src/event.js +++ b/src/event.js @@ -133,7 +133,7 @@ jQuery.event = { var namespaces = type.split("."); type = namespaces.shift(); var all = !namespaces.length, - namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join(".*\\.") + "(\\.|$)"), + namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join("\\.(?:.*\\.)?") + "(\\.|$)"), special = this.special[ type ] || {}; if ( events[ type ] ) { @@ -291,7 +291,7 @@ jQuery.event = { // Cache this now, all = true means, any handler all = !namespaces.length && !event.exclusive; - var namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join(".*\\.") + "(\\.|$)"); + var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join("\\.(?:.*\\.)?") + "(\\.|$)"); handlers = ( jQuery.data(this, "events") || {} )[ event.type ]; diff --git a/test/unit/event.js b/test/unit/event.js index 2b4d8e5..7481008 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -192,6 +192,10 @@ test("bind(), multi-namespaced events", function() { jQuery("#firstp").bind("click.test.abc",function(e){ check("click.test.abc", "Namespaced click triggered"); }); + + // Those would not trigger/unbind (#5303) + jQuery("#firstp").trigger("click.a.test"); + jQuery("#firstp").unbind("click.a.test"); // Trigger both bound fn (1) jQuery("#firstp").trigger("click.test.abc"); -- 1.7.10.4