prototype.lite.js
上传用户:wangting
上传日期:2020-01-24
资源大小:2226k
文件大小:3k
源码类别:

破解

开发平台:

ASP/ASPX

  1. /*  Prototype JavaScript framework
  2.  *  (c) 2005 Sam Stephenson <sam@conio.net>
  3.  *  Prototype is freely distributable under the terms of an MIT-style license.
  4.  *  For details, see the Prototype web site: http://prototype.conio.net/
  5. /*--------------------------------------------------------------------------*/
  6. //note: modified & stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net).
  7. var Class = {
  8. create: function() {
  9. return function() {
  10. this.initialize.apply(this, arguments);
  11. }
  12. }
  13. }
  14. Object.extend = function(destination, source) {
  15. for (property in source) destination[property] = source[property];
  16. return destination;
  17. }
  18. Function.prototype.bind = function(object) {
  19. var __method = this;
  20. return function() {
  21. return __method.apply(object, arguments);
  22. }
  23. }
  24. Function.prototype.bindAsEventListener = function(object) {
  25. var __method = this;
  26. return function(event) {
  27. __method.call(object, event || window.event);
  28. }
  29. }
  30. function $() {
  31. if (arguments.length == 1) return get$(arguments[0]);
  32. var elements = [];
  33. $c(arguments).each(function(el){
  34. elements.push(get$(el));
  35. });
  36. return elements;
  37. function get$(el){
  38. if (typeof el == 'string') el = document.getElementById(el);
  39. return el;
  40. }
  41. }
  42. if (!window.Element) var Element = new Object();
  43. Object.extend(Element, {
  44. remove: function(element) {
  45. element = $(element);
  46. element.parentNode.removeChild(element);
  47. },
  48. hasClassName: function(element, className) {
  49. element = $(element);
  50. if (!element) return;
  51. var hasClass = false;
  52. element.className.split(' ').each(function(cn){
  53. if (cn == className) hasClass = true;
  54. });
  55. return hasClass;
  56. },
  57. addClassName: function(element, className) {
  58. element = $(element);
  59. Element.removeClassName(element, className);
  60. element.className += ' ' + className;
  61. },
  62.   
  63. removeClassName: function(element, className) {
  64. element = $(element);
  65. if (!element) return;
  66. var newClassName = '';
  67. element.className.split(' ').each(function(cn, i){
  68. if (cn != className){
  69. if (i > 0) newClassName += ' ';
  70. newClassName += cn;
  71. }
  72. });
  73. element.className = newClassName;
  74. },
  75. cleanWhitespace: function(element) {
  76. element = $(element);
  77. $c(element.childNodes).each(function(node){
  78. if (node.nodeType == 3 && !/S/.test(node.nodeValue)) Element.remove(node);
  79. });
  80. },
  81. find: function(element, what) {
  82. element = $(element)[what];
  83. while (element.nodeType != 1) element = element[what];
  84. return element;
  85. }
  86. });
  87. var Position = {
  88. cumulativeOffset: function(element) {
  89. var valueT = 0, valueL = 0;
  90. do {
  91. valueT += element.offsetTop  || 0;
  92. valueL += element.offsetLeft || 0;
  93. element = element.offsetParent;
  94. } while (element);
  95. return [valueL, valueT];
  96. }
  97. };
  98. document.getElementsByClassName = function(className) {
  99. var children = document.getElementsByTagName('*') || document.all;
  100. var elements = [];
  101. $c(children).each(function(child){
  102. if (Element.hasClassName(child, className)) elements.push(child);
  103. });  
  104. return elements;
  105. }
  106. //useful array functions
  107. Array.prototype.iterate = function(func){
  108. for(var i=0;i<this.length;i++) func(this[i], i);
  109. }
  110. if (!Array.prototype.each) Array.prototype.each = Array.prototype.iterate;
  111. function $c(array){
  112. var nArray = [];
  113. for (var i=0;i<array.length;i++) nArray.push(array[i]);
  114. return nArray;
  115. }