Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function(){
- var cache = {},
- guidCounter = 1,
- expando = 'data'+(new Date).getTime();
- this.getData = function(elem){
- var guid = elem[expando];
- if(!guid){
- guid = elem[expando] = guidCounter++
- cache[guid] = {}
- }
- return cache[guid]
- }
- this.removeData = function(elem){
- var guid = elem.expando;
- if(!guid) return
- delete cache[guid]
- try{
- delete elem[expando]
- }catch(e){
- if(elem.removeAttribute){
- elem.removeAttribute(expando)
- }
- }
- }
- })();
- (function(){
- var nextGuid = 1;
- this.addEvent = function(elem,type,fn){
- var data = getData(elem)
- if(!data.handlers) data.handlers = {}
- if(!data.handlers[type]) data.handlers[type] = []
- data.handlers[type].push(fn);
- if(!data.dispatcher){
- data.dispatcher = function(event){
- if(data.disabled) return;
- event = fixEvent(event);
- var handlers = data.handlers[event.type];
- if(handlers){
- for(var n=0;n<handlers.length;n++){
- handlers[n].call(elem,event);
- }
- }
- };
- }
- if(data.handlers[type].length ===1){
- if(document.addEventListener){
- elem.addEventListener(type,data.dispatcher,false);
- }else if(document.attachEvent){
- elem.attachEvent('on'+type,data.dispatcher)
- }
- }
- }
- })();
- function tidyUp(elem,type){
- function isEmpty(object){
- for(var prop in object){
- return false
- }
- }
- return true
- var data = getData(elem)
- if(data.handlers[type].length == 0){
- delete data.handlers[type]
- }
- if(document.removeEventListener){
- elem.removeEventListener(type,data.dispatcher,false)
- }else if(document.detachEvent){
- elem.detachEvent('on'+type,data.dispatcher)
- }
- if(isEmpty(data.handlers)){
- delete data.handlers
- delete data.dispatcher
- }
- if(isEmpty(data)){
- removeData(elem)
- }
- }
- function triggerEvent(elem,event){
- var elemData = getData(elem),
- parent = elem.parentNode || elem.ownerDocument
- if(typeof event == 'string'){
- event = { type:event,target:elem}
- }
- event = fixEvent(event);
- if(elemData.dispatcher){
- elemData.dispatcher.call(elem,event)
- }
- if(parent && !event.isPropagationStopped()){
- triggerEvent(parent,evsent)
- }
- else if(!parent && !event.isDefaultPrevented()){
- var targetData = getData(event.target)
- if(event.target[event.type]){
- targetData.disabled = true;
- event.target[event.type]();
- targetData.disabled = false;
- }
- }
- }
- (function(){
- this.fixEvent = function(event){
- event.isPropagationStopped =function(){
- return false;
- }
- event.isDefaultPrevented = function(){
- return false;
- }
- return event
- }
- })()
- function isEventSupported(eventName){
- var element = document.createElement('div'),
- isSupported;
- eventName = 'on' + eventName
- }
- var s=document.createElement('script');
- s.setAttribute('src','//cdn.bootcss.com/jquery/1.7.1/jquery.min.js');
- document.getElementsByTagName('body')[0].appendChild(s);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement