From e83c33e65e2275afee9c0ed8d37f497caf28ff47 Mon Sep 17 00:00:00 2001 From: Timothy Warren Date: Tue, 5 Jul 2011 19:19:32 -0400 Subject: [PATCH] Lots of IE 8 fixes --- kis.js | 52 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/kis.js b/kis.js index 8446cbc..e309a2e 100644 --- a/kis.js +++ b/kis.js @@ -17,14 +17,6 @@ { return; } - - //Define console.log dummy function if it doesn't exist - if(typeof window.console === "undefined") - { - window.console = { - log: function(){} - }; - } var $_, $; @@ -54,7 +46,7 @@ else { x = document.querySelectorAll(a); - } + } return (x.length === 1) ? x[0] : x; }; @@ -93,7 +85,7 @@ callback = function (){}; } - var request = (typeof window.XMLHttpRequest === "function") + var request = (typeof window.XMLHttpRequest !== "undefined") ? new XMLHttpRequest() : false; @@ -309,7 +301,7 @@ // Define the proper attach and remove functions // based on browser support - if(support.addEventListener) + if(support.addEventListener === true) { attach = function (sel, event, callback) { @@ -326,7 +318,7 @@ } }; } - else if(support.attachEvent) + else if(typeof document.attachEvent !== "undefined") { attach = function (sel, event, callback) { @@ -336,7 +328,7 @@ callback.apply(sel, arguments); } - if (typeof sel.attachEvent === "function") + if (typeof sel.attachEvent !== "undefined") { remove(sel, event, callback); // Make sure we don't have duplicate listeners @@ -351,10 +343,14 @@ listener: listener }); } + else + { + console.log("Failed to attach event:"+event); + } }; remove = function (sel, event, callback) { - if(typeof typeof sel.detachEvent === "function") + if(typeof sel.detachEvent !== "undefined") { var expando = sel[kis_expando]; if (expando && expando.listeners @@ -406,16 +402,21 @@ return; } + else + { + event = event[0]; + } //Check for multiple DOM objects if (sel.length > 1) { + var selx = (sel.item(i)) ? sel.item(i) : sel[i]; len = sel.length; for (i = 0; i < len; i++) { (add === true) - ? attach(sel[i], event, callback) - : remove(sel[i], event, callback); + ? attach(selx, event, callback) + : remove(selx, event, callback); } } else @@ -451,7 +452,17 @@ //Private function for getting/setting attributes function _attr(sel, name, value) { - var oldVal, doAttr; + var oldVal, doAttr, i; + + if(sel.length > 1) + { + var len = sel.length; + for(i=0;i