Enabler option
This commit is contained in:
@@ -186,6 +186,45 @@ var p = function(){
|
||||
console.log(arguments)
|
||||
};
|
||||
|
||||
|
||||
(function(){
|
||||
var events;
|
||||
|
||||
var check = function(e) {
|
||||
var target = $(e.target);
|
||||
var parents = target.getParents();
|
||||
events.each(function(item) {
|
||||
var element = item.element;
|
||||
if (element != target && !parents.contains(element))
|
||||
item.fn.call(element, e);
|
||||
});
|
||||
};
|
||||
|
||||
Element.Events.outerClick = {
|
||||
onAdd : function(fn) {
|
||||
if (!events) {
|
||||
document.addEvent('click', check);
|
||||
events = [];
|
||||
}
|
||||
events.push( {
|
||||
element : this,
|
||||
fn : fn
|
||||
});
|
||||
},
|
||||
|
||||
onRemove : function(fn) {
|
||||
events = events.filter(function(item) {
|
||||
return item.element != this || item.fn != fn;
|
||||
}, this);
|
||||
if (!events.length) {
|
||||
document.removeEvent('click', check);
|
||||
events = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
|
||||
function randomString(length, extra) {
|
||||
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz" + (extra ? '-._!@#$%^&*()+=' : '');
|
||||
var stringLength = length || 8;
|
||||
|
||||
Reference in New Issue
Block a user