Added multiple event binding for a specific selector. Need to look into Firefox issue with it

This commit is contained in:
Timothy Warren 2011-06-17 08:08:04 -04:00
parent ef2dcf4ac6
commit d900022d17
1 changed files with 58 additions and 37 deletions

95
kis.js
View File

@ -9,7 +9,7 @@
"use strict"; "use strict";
var $_, $, kis; var $_, $;
$_ = {}; $_ = {};
@ -76,8 +76,8 @@
for (var name in data) for (var name in data)
{ {
if(!data.hasOwnProperty(name)){ continue }; if(!data.hasOwnProperty(name)){ continue; };
if(typeof data[name] === "function"){ continue }; if(typeof data[name] === "function"){ continue; };
var value = data[name].toString(); var value = data[name].toString();
@ -241,7 +241,7 @@
* Event api wrapper * Event api wrapper
*/ */
(function(){ (function(){
var attach, remove; var attach, remove, add_remove, e;
if(document.addEventListener) if(document.addEventListener)
{ {
@ -268,44 +268,65 @@
}; };
} }
var e = { add_remove = function (sel, event, callback, add)
{
var i,len;
if(!sel)
{
return false;
}
//Get the DOM object if you give me a selector string
if(typeof sel === "string")
{
sel = $(sel);
}
//Multiple events? Run recursively!
event = event.split(" ");
if(event.length > 1)
{
console.log(event);
len = event.length;
for(i=0;i<len;i++)
{
add_remove(sel, event[i], callback, add);
}
return;
}
//Check for multiple DOM objects
if(sel.length > 1)
{
len = sel.length;
for(i=0;i<len;i++)
{
(add === true)
? attach(sel[i], event, callback)
: remove(sel[i], event, callback);
}
}
else
{
(add === true)
? attach(sel, event, callback)
: remove(sel, event, callback);
}
};
e = {
add: function(sel, event, callback) add: function(sel, event, callback)
{ {
var i,len; add_remove(sel, event, callback, true);
if(!sel){return false;}
if(sel.length)
{
len = sel.length;
for(i=0;i<len;i++)
{
attach(sel[i], event, callback);
}
}
else
{
attach(sel, event, callback);
}
}, },
remove: function(sel, event, callback) remove: function(sel, event, callback)
{ {
var i, len; add_remove(sel, event, callback, false);
if(!sel){return false;}
if(sel.length)
{
len = sel.length;
for(i=0;i<len;i++)
{
remove(sel[i], event, callback);
}
}
else
{
remove(sel, event, callback);
}
} }
}; };