|
23 | 23 | : (selector && (selector === window || selector.nodeType) ? [selector] : selector));
|
24 | 24 | }
|
25 | 25 |
|
26 |
| - $.fn = { |
| 26 | + Wrapper.prototype = $.fn = { |
27 | 27 | constructor: Wrapper,
|
28 | 28 | length: 0
|
29 | 29 | };
|
30 |
| - Wrapper.prototype = $.fn; |
31 | 30 |
|
32 |
| - $.extend = function (target) { |
| 31 | + $.fn.extend = $.extend = function (target) { |
33 | 32 | var options, name, copy, i = 0, length = arguments.length;
|
34 | 33 | if (length <= 1) {
|
35 | 34 | target = this;
|
|
47 | 46 | }
|
48 | 47 | return target;
|
49 | 48 | };
|
50 |
| - $.fn.extend = $.extend; |
51 | 49 |
|
52 | 50 | var prev_$ = window.$;
|
53 | 51 | window.$ = $;
|
|
71 | 69 | return false;
|
72 | 70 | },
|
73 | 71 | each: function (array, callback) {
|
74 |
| - var value, i = 0, length = array.length; |
75 |
| - for (; i < length; i++) { |
76 |
| - value = array[i]; |
77 |
| - if (callback.call(value, i, value) === false) { |
| 72 | + for (var i = 0, length = array.length ; i < length; i++) { |
| 73 | + if (callback(i, array[i]) === false) { |
78 | 74 | return false;
|
79 | 75 | }
|
80 | 76 | }
|
81 | 77 | return true;
|
82 | 78 | },
|
83 |
| - grep: function (elems, callback, invert) { |
| 79 | + grep: function (array, callback, invert) { |
84 | 80 | var callbackInverse,
|
85 | 81 | matches = [],
|
86 | 82 | i = 0,
|
87 |
| - length = elems.length, |
| 83 | + length = array.length, |
88 | 84 | callbackExpect = !invert;
|
89 | 85 | for (; i < length; i++) {
|
90 |
| - callbackInverse = !callback(i, elems[i]); |
| 86 | + callbackInverse = !callback(i, array[i]); |
91 | 87 | if (callbackInverse !== callbackExpect) {
|
92 |
| - matches.push(elems[i]); |
| 88 | + matches.push(array[i]); |
93 | 89 | }
|
94 | 90 | }
|
95 | 91 | return matches;
|
96 | 92 | },
|
97 |
| - map: function (elems, callback) { |
| 93 | + map: function (array, callback) { |
98 | 94 | var value,
|
99 | 95 | i = 0,
|
100 |
| - length = elems.length, |
| 96 | + length = array.length, |
101 | 97 | ret = [];
|
102 | 98 | for (; i < length; i++) {
|
103 |
| - value = callback(i, elems[i]); |
| 99 | + value = callback(array[i], i); |
104 | 100 | if (value != null) {
|
105 | 101 | ret.push(value);
|
106 | 102 | }
|
|
111 | 107 |
|
112 | 108 | var DATAKEYPROP = '__jqlight_data__';
|
113 | 109 | $.fn.extend({
|
114 |
| - each: function (callback, args) { |
115 |
| - $.each(this, callback, args); |
| 110 | + each: function (callback) { |
| 111 | + $.each(this, function (index, elem) { |
| 112 | + return callback.call(elem, index, elem); |
| 113 | + }); |
116 | 114 | return this;
|
117 | 115 | },
|
| 116 | + map: function (callback) { |
| 117 | + return $($.map(this, function (elem, index) { |
| 118 | + return callback.call(elem, index, elem); |
| 119 | + })); |
| 120 | + }, |
| 121 | + filter: function (callback) { |
| 122 | + return $($.grep(this, function (index, elem) { |
| 123 | + return callback.call(elem, index, elem); |
| 124 | + })); |
| 125 | + }, |
118 | 126 | ready: function (fn) {
|
119 | 127 | if (/complete|loaded|interactive/.test(document.readyState) && document.body) {
|
120 | 128 | fn();
|
|
140 | 148 | selector = undefined;
|
141 | 149 | }
|
142 | 150 | types = types.split(' ');
|
143 |
| - return this.each(function (i, elem) { |
| 151 | + return this.each(function (index, elem) { |
144 | 152 | var listener = selector ? delegateHandler.bind(elem, selector, fn) : fn;
|
145 | 153 | $.each(types, function (j, eventName) {
|
146 | 154 | if (eventName) {
|
|
150 | 158 | });
|
151 | 159 | },
|
152 | 160 | off: function (types, selector, fn) {
|
| 161 | + // Note: off() for delegated events is not supported |
153 | 162 | if (selector === false || $.isFunction(selector)) {
|
154 | 163 | // ( types [, fn] )
|
155 | 164 | fn = selector;
|
156 |
| - selector = undefined; |
| 165 | + // selector = undefined; |
157 | 166 | }
|
158 | 167 | types = types.split(' ');
|
159 |
| - return this.each(function (i, elem) { |
| 168 | + return this.each(function (index, elem) { |
160 | 169 | $.each(types, function (j, eventName) {
|
161 | 170 | if (eventName) {
|
162 | 171 | elem.removeEventListener(eventName, fn);
|
|
181 | 190 | var elem = this[0];
|
182 | 191 | return elem && elem[DATAKEYPROP] ? elem[DATAKEYPROP][key] : undefined;
|
183 | 192 | }
|
184 |
| - this.each(function (i, elem) { |
| 193 | + this.each(function (index, elem) { |
185 | 194 | elem[DATAKEYPROP] = elem[DATAKEYPROP] || {};
|
186 | 195 | elem[DATAKEYPROP][key] = value;
|
187 | 196 | });
|
188 | 197 | return this;
|
189 | 198 | },
|
190 |
| - map: function (callback) { |
191 |
| - return $($.map(this, callback)); |
192 |
| - }, |
193 |
| - filter: function (callback) { |
194 |
| - return $($.grep(this, callback)); |
195 |
| - }, |
196 | 199 | attr: function (name, value) {
|
197 | 200 | if (value === undefined) {
|
198 | 201 | return this.length ? this[0].getAttribute(name) : undefined;
|
199 | 202 | }
|
200 |
| - $.each(this, function (i, elem) { |
201 |
| - elem.setAttribute(name, value + ''); |
| 203 | + this.each(function () { |
| 204 | + this.setAttribute(name, value + ''); |
202 | 205 | });
|
203 | 206 | return this;
|
204 | 207 | }
|
|
214 | 217 | if (elem.nodeType === 1) {
|
215 | 218 | origValue = elem.className;
|
216 | 219 | cur = origValue ? ( ' ' + origValue + ' ' ).replace(/[\t\r\n\f]/g, ' ') : ' ';
|
217 |
| - j = 0; |
218 |
| - while ((clazz = classes[j++])) { |
| 220 | + for (j = 0; (clazz = classes[j++]); ) { |
219 | 221 | cur = callback(cur, clazz, cur.indexOf(' ' + clazz + ' ') >= 0);
|
220 | 222 | }
|
221 | 223 | finalValue = cur.slice(1, -1);
|
|
227 | 229 | return obj;
|
228 | 230 | }
|
229 | 231 |
|
230 |
| - function delegateHandler(selector, handler, event) { |
231 |
| - var currentTarget = closest.call([event.target], selector, this)[0]; |
232 |
| - if (currentTarget && currentTarget !== this) { |
233 |
| - handler.call(currentTarget, event); |
234 |
| - } |
235 |
| - } |
236 |
| - |
237 | 232 | var matches = Element.matches || Element.matchesSelector || Element.mozMatchesSelector || Element.msMatchesSelector || Element.oMatchesSelector || Element.webkitMatchesSelector;
|
238 | 233 |
|
239 |
| - function closest(selector, context) { |
240 |
| - var nodes = []; |
241 |
| - $.each(this, function (i, node) { |
242 |
| - while (node && node !== context) { |
243 |
| - if (matches.call(node, selector)) { |
244 |
| - nodes.push(node); |
245 |
| - break; |
246 |
| - } |
247 |
| - node = node.parentElement; |
| 234 | + function delegateHandler(selector, handler, event) { |
| 235 | + var node = event.target; |
| 236 | + while (node && node !== this) { |
| 237 | + if (matches.call(node, selector)) { |
| 238 | + return handler.call(node, event); |
248 | 239 | }
|
249 |
| - }); |
250 |
| - return $($.grep(nodes, function (index, item) { |
251 |
| - return nodes.indexOf(item) === index; |
252 |
| - })); |
| 240 | + node = node.parentElement; |
| 241 | + } |
253 | 242 | }
|
254 | 243 | })(window, document, Element.prototype);
|
0 commit comments