Separate $.one event handler.

This commit is contained in:
Hyunje Alex Jun
2015-01-25 16:24:01 +00:00
parent 796a0a9093
commit 427284337f
2 changed files with 14 additions and 2 deletions

11
src/js/lib/event.js Normal file
View File

@@ -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);
};

View File

@@ -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();