From 1ff22cec0fdff26aadaaedbc2624f82530ba165f Mon Sep 17 00:00:00 2001 From: David Elner Date: Mon, 29 Jul 2013 12:05:28 -0400 Subject: [PATCH 1/2] Allow event handlers registered with one() to be removed with off(). Fixes #658 --- src/js/events.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/js/events.js b/src/js/events.js index 31f0aff040..b8e2af9fc7 100644 --- a/src/js/events.js +++ b/src/js/events.js @@ -329,8 +329,10 @@ vjs.trigger = function(elem, event) { * @return {[type]} */ vjs.one = function(elem, type, fn) { - vjs.on(elem, type, function(){ + var func = function(){ vjs.off(elem, type, arguments.callee); fn.apply(this, arguments); - }); + }; + func.guid = fn.guid = fn.guid || vjs.guid++; + vjs.on(elem, type, func); }; From 8fe291111c3f54f920d5579af508f289e0252caa Mon Sep 17 00:00:00 2001 From: David Elner Date: Mon, 29 Jul 2013 16:08:11 -0400 Subject: [PATCH 2/2] Removed deprecated call to arguments.callee Fixes #658 --- src/js/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/events.js b/src/js/events.js index b8e2af9fc7..d581c99e59 100644 --- a/src/js/events.js +++ b/src/js/events.js @@ -330,7 +330,7 @@ vjs.trigger = function(elem, event) { */ vjs.one = function(elem, type, fn) { var func = function(){ - vjs.off(elem, type, arguments.callee); + vjs.off(elem, type, func); fn.apply(this, arguments); }; func.guid = fn.guid = fn.guid || vjs.guid++;