Corrected RegExp to match event namespaces. Fixes #5303.
This commit is contained in:
parent
ac00fe5bbb
commit
04dbdb7525
2 changed files with 6 additions and 2 deletions
|
@ -133,7 +133,7 @@ jQuery.event = {
|
||||||
var namespaces = type.split(".");
|
var namespaces = type.split(".");
|
||||||
type = namespaces.shift();
|
type = namespaces.shift();
|
||||||
var all = !namespaces.length,
|
var all = !namespaces.length,
|
||||||
namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join(".*\\.") + "(\\.|$)"),
|
namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join("\\.(?:.*\\.)?") + "(\\.|$)"),
|
||||||
special = this.special[ type ] || {};
|
special = this.special[ type ] || {};
|
||||||
|
|
||||||
if ( events[ type ] ) {
|
if ( events[ type ] ) {
|
||||||
|
@ -291,7 +291,7 @@ jQuery.event = {
|
||||||
// Cache this now, all = true means, any handler
|
// Cache this now, all = true means, any handler
|
||||||
all = !namespaces.length && !event.exclusive;
|
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 ];
|
handlers = ( jQuery.data(this, "events") || {} )[ event.type ];
|
||||||
|
|
||||||
|
|
|
@ -192,6 +192,10 @@ test("bind(), multi-namespaced events", function() {
|
||||||
jQuery("#firstp").bind("click.test.abc",function(e){
|
jQuery("#firstp").bind("click.test.abc",function(e){
|
||||||
check("click.test.abc", "Namespaced click triggered");
|
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)
|
// Trigger both bound fn (1)
|
||||||
jQuery("#firstp").trigger("click.test.abc");
|
jQuery("#firstp").trigger("click.test.abc");
|
||||||
|
|
Loading…
Reference in a new issue