simple-uploaders
Version:
Uploader library implements html5 file upload and provides multiple simultaneous, stable, fault tolerant and resumable uploads
50 lines (43 loc) • 1.24 kB
JavaScript
var each = require('./utils').each
var event = {
_eventData: null,
on: function (name, func) {
if (!this._eventData) this._eventData = {}
if (!this._eventData[name]) this._eventData[name] = []
var listened = false
each(this._eventData[name], function (fuc) {
if (fuc === func) {
listened = true
return false
}
})
if (!listened) {
this._eventData[name].push(func)
}
},
off: function (name, func) {
if (!this._eventData) this._eventData = {}
if (!this._eventData[name] || !this._eventData[name].length) return
if (func) {
each(this._eventData[name], function (fuc, i) {
if (fuc === func) {
this._eventData[name].splice(i, 1)
return false
}
}, this)
} else {
this._eventData[name] = []
}
},
trigger: function (name) {
if (!this._eventData) this._eventData = {}
if (!this._eventData[name]) return true
var args = this._eventData[name].slice.call(arguments, 1)
var preventDefault = false
each(this._eventData[name], function (fuc) {
preventDefault = fuc.apply(this, args) === false || preventDefault
}, this)
return !preventDefault
}
}
module.exports = event