Advertisement
Guest User

Untitled

a guest
May 3rd, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. (function(){
  2. var cache = {},
  3. guidCounter = 1,
  4. expando = 'data'+(new Date).getTime();
  5. this.getData = function(elem){
  6. var guid = elem[expando];
  7. if(!guid){
  8. guid = elem[expando] = guidCounter++
  9. cache[guid] = {}
  10. }
  11. return cache[guid]
  12. }
  13. this.removeData = function(elem){
  14. var guid = elem.expando;
  15. if(!guid) return
  16. delete cache[guid]
  17. try{
  18. delete elem[expando]
  19. }catch(e){
  20. if(elem.removeAttribute){
  21. elem.removeAttribute(expando)
  22. }
  23. }
  24. }
  25. })();
  26. (function(){
  27. var nextGuid = 1;
  28. this.addEvent = function(elem,type,fn){
  29. var data = getData(elem)
  30. if(!data.handlers) data.handlers = {}
  31. if(!data.handlers[type]) data.handlers[type] = []
  32. data.handlers[type].push(fn);
  33. if(!data.dispatcher){
  34. data.dispatcher = function(event){
  35. if(data.disabled) return;
  36. event = fixEvent(event);
  37. var handlers = data.handlers[event.type];
  38. if(handlers){
  39. for(var n=0;n<handlers.length;n++){
  40. handlers[n].call(elem,event);
  41. }
  42. }
  43. };
  44. }
  45. if(data.handlers[type].length ===1){
  46. if(document.addEventListener){
  47. elem.addEventListener(type,data.dispatcher,false);
  48. }else if(document.attachEvent){
  49. elem.attachEvent('on'+type,data.dispatcher)
  50. }
  51. }
  52. }
  53. })();
  54. function tidyUp(elem,type){
  55. function isEmpty(object){
  56. for(var prop in object){
  57. return false
  58. }
  59. }
  60. return true
  61. var data = getData(elem)
  62. if(data.handlers[type].length == 0){
  63. delete data.handlers[type]
  64. }
  65. if(document.removeEventListener){
  66. elem.removeEventListener(type,data.dispatcher,false)
  67. }else if(document.detachEvent){
  68. elem.detachEvent('on'+type,data.dispatcher)
  69. }
  70. if(isEmpty(data.handlers)){
  71. delete data.handlers
  72. delete data.dispatcher
  73. }
  74. if(isEmpty(data)){
  75. removeData(elem)
  76. }
  77. }
  78. function triggerEvent(elem,event){
  79. var elemData = getData(elem),
  80. parent = elem.parentNode || elem.ownerDocument
  81. if(typeof event == 'string'){
  82. event = { type:event,target:elem}
  83. }
  84. event = fixEvent(event);
  85.  
  86. if(elemData.dispatcher){
  87. elemData.dispatcher.call(elem,event)
  88. }
  89. if(parent && !event.isPropagationStopped()){
  90. triggerEvent(parent,evsent)
  91. }
  92. else if(!parent && !event.isDefaultPrevented()){
  93. var targetData = getData(event.target)
  94. if(event.target[event.type]){
  95. targetData.disabled = true;
  96. event.target[event.type]();
  97. targetData.disabled = false;
  98. }
  99. }
  100. }
  101. (function(){
  102. this.fixEvent = function(event){
  103. event.isPropagationStopped =function(){
  104. return false;
  105. }
  106. event.isDefaultPrevented = function(){
  107. return false;
  108. }
  109. return event
  110. }
  111. })()
  112. function isEventSupported(eventName){
  113. var element = document.createElement('div'),
  114. isSupported;
  115. eventName = 'on' + eventName
  116.  
  117. }
  118. var s=document.createElement('script');
  119. s.setAttribute('src','//cdn.bootcss.com/jquery/1.7.1/jquery.min.js');
  120. document.getElementsByTagName('body')[0].appendChild(s);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement