| const utils = { | const utils = { | ||||
| isElement:function(el){ | |||||
| // Code based on... | |||||
| // https://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object | |||||
| try { | |||||
| // Using W3 DOM2 (works for FF, Opera and Chrome) | |||||
| return obj instanceof HTMLElement; | |||||
| } catch(e) { | |||||
| // Browsers not supporting W3 DOM2 don't have HTMLElement and | |||||
| // an exception is thrown and we end up here. Testing some | |||||
| // properties that all elements have (works on IE7) | |||||
| return (typeof obj==="object") && | |||||
| (obj.nodeType===1) && | |||||
| (typeof obj.style === "object") && | |||||
| (typeof obj.ownerDocument ==="object"); | |||||
| } | |||||
| }, | |||||
| debounce:function(func, delay){ | debounce:function(func, delay){ | ||||
| var timeout = null; | var timeout = null; | ||||
| return function(){ | return function(){ |