diff --git a/spec/stdlib/jquery-extensions-spec.coffee b/spec/stdlib/jquery-extensions-spec.coffee index dbda20062..4a2d22d7b 100644 --- a/spec/stdlib/jquery-extensions-spec.coffee +++ b/spec/stdlib/jquery-extensions-spec.coffee @@ -5,6 +5,7 @@ describe 'jQuery extensions', -> [returnValue, element, events] = [] beforeEach -> + returnValue = undefined element = $("
") events = [] @@ -22,4 +23,19 @@ describe 'jQuery extensions', -> it 'does not call subsequent handlers', -> returnValue = false element.trigger 'foo' - expect(events).toEqual [2] \ No newline at end of file + expect(events).toEqual [2] + + describe 'when the event is namespaced', -> + it 'calls handler', -> + element.preempt 'foo.bar', -> events.push(4) + element.trigger 'foo' + expect(events).toEqual [4,2,1,3] + + events = [] + element.trigger 'foo.bar' + expect(events).toEqual [4] + + events = [] + element.off('.bar') + element.trigger 'foo' + expect(events).toEqual [2,1,3] diff --git a/src/stdlib/jquery-extensions.coffee b/src/stdlib/jquery-extensions.coffee index 2b7c03876..aef35305f 100644 --- a/src/stdlib/jquery-extensions.coffee +++ b/src/stdlib/jquery-extensions.coffee @@ -19,5 +19,6 @@ $.fn.preempt = (eventName, handler) -> @on eventName, (e) -> if handler() == false then e.stopImmediatePropagation() - handlers = @data('events')[eventName] + eventNameWithoutNamespace = eventName.split('.')[0] + handlers = @data('events')[eventNameWithoutNamespace] handlers.unshift(handlers.pop())