1 |
|
2 | define([
|
3 | 'require',
|
4 | 'exports',
|
5 | 'module',
|
6 | './synthetic'
|
7 | ], function (require, exports, module) {
|
8 | var syn = require('./synthetic');
|
9 | var typeables = [];
|
10 | var __indexOf = [].indexOf || function (item) {
|
11 | for (var i = 0, l = this.length; i < l; i++) {
|
12 | if (i in this && this[i] === item) {
|
13 | return i;
|
14 | }
|
15 | }
|
16 | return -1;
|
17 | };
|
18 | syn.typeable = function (fn) {
|
19 | if (__indexOf.call(typeables, fn) === -1) {
|
20 | typeables.push(fn);
|
21 | }
|
22 | };
|
23 | syn.typeable.test = function (el) {
|
24 | for (var i = 0, len = typeables.length; i < len; i++) {
|
25 | if (typeables[i](el)) {
|
26 | return true;
|
27 | }
|
28 | }
|
29 | return false;
|
30 | };
|
31 | var type = syn.typeable;
|
32 | var typeableExp = /input|textarea/i;
|
33 | type(function (el) {
|
34 | return typeableExp.test(el.nodeName);
|
35 | });
|
36 | type(function (el) {
|
37 | return __indexOf.call([
|
38 | '',
|
39 | 'true'
|
40 | ], el.getAttribute('contenteditable')) !== -1;
|
41 | });
|
42 | }); |
\ | No newline at end of file |