From 427284337fb778f4001bc1a2aeed1b9527d76ed9 Mon Sep 17 00:00:00 2001 From: Hyunje Alex Jun Date: Sun, 25 Jan 2015 16:24:01 +0000 Subject: [PATCH] Separate $.one event handler. --- src/js/lib/event.js | 11 +++++++++++ src/js/plugin/ps.js | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 src/js/lib/event.js diff --git a/src/js/lib/event.js b/src/js/lib/event.js new file mode 100644 index 0000000..9fec68e --- /dev/null +++ b/src/js/lib/event.js @@ -0,0 +1,11 @@ +/* Copyright (c) 2015 Hyunje Alex Jun and other contributors + * Licensed under the MIT License + */ +'use strict'; + +exports.once = function (element, eventName, handler) { + element.addEventListener(eventName, function (e) { + element.removeEventListener(eventName, handler, false); + handler(e); + }, false); +}; diff --git a/src/js/plugin/ps.js b/src/js/plugin/ps.js index 4db586a..1b10f5f 100644 --- a/src/js/plugin/ps.js +++ b/src/js/plugin/ps.js @@ -6,6 +6,7 @@ var cls = require('../lib/class') , d = require('../lib/dom') , defaultSettings = require('./default-setting') + , evt = require('../lib/event') , eventClassFactory = require('../lib/event-class') , h = require('../lib/helper'); @@ -227,7 +228,7 @@ module.exports = function (element, settingOrCommand) { cls.add(element, 'ps-in-scrolling'); $(ownerDocument).bind(eventClass('mousemove'), mouseMoveHandler); - $(ownerDocument).one(eventClass('mouseup'), mouseUpHandler); + evt.once(ownerDocument, 'mouseup', mouseUpHandler); e.stopPropagation(); e.preventDefault(); @@ -259,7 +260,7 @@ module.exports = function (element, settingOrCommand) { cls.add(element, 'ps-in-scrolling'); $(ownerDocument).bind(eventClass('mousemove'), mouseMoveHandler); - $(ownerDocument).one(eventClass('mouseup'), mouseUpHandler); + evt.once(ownerDocument, 'mouseup', mouseUpHandler); e.stopPropagation(); e.preventDefault();