From da49a2730779ecc3b4dd147cc418a0df7c70fad9 Mon Sep 17 00:00:00 2001 From: sculove Date: Mon, 10 Aug 2015 11:44:51 +0900 Subject: [PATCH] Manager : fix off method When you didn't attach an event and you use a Hammerjs.Manager.off method , you will see script error. Fixes #768 Closes #839 Ref #770 --- src/manager.js | 2 +- tests/unit/test_events.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/manager.js b/src/manager.js index 36e673c7f..939857ebb 100644 --- a/src/manager.js +++ b/src/manager.js @@ -206,7 +206,7 @@ Manager.prototype = { if (!handler) { delete handlers[event]; } else { - handlers[event].splice(inArray(handlers[event], handler), 1); + handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1); } }); return this; diff --git a/tests/unit/test_events.js b/tests/unit/test_events.js index 1d6103350..b286cde50 100644 --- a/tests/unit/test_events.js +++ b/tests/unit/test_events.js @@ -47,3 +47,15 @@ test('test the eventemitter', function() { ee.emit('testEvent2', inputData); // doenst trigger a thing ee.emit('testEvent3', inputData); // doenst trigger a thing }); + +/* + * Hammer.Manager.off method : exception handling + */ +test("When Hammer.Manager didn't attach an event, 'off' method is ignored", function() { + var count = 0; + hammer = new Hammer(el, { inputTarget: document.body }); + hammer.off("swipeleft", function(e) { + count++; + }); + ok(true, "nothing"); +});