-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathelement.js
More file actions
63 lines (54 loc) · 1.18 KB
/
element.js
File metadata and controls
63 lines (54 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Core.addModule((function(){
var attr = function(attributes){
for(var i in attributes){
this.element.setAttribute(i, attributes[i]);
}
return this;
};
var content = function(){
var text;
for(var i = 0; i < arguments.length; i++){
if(typeof arguments[i] === 'string'){
text = document.createTextNode(arguments[i]);
this.element.appendChild(text);
} else if(arguments[i] instanceof elem) {
this.element.appendChild(arguments[i].element);
} else {
this.element.appendChild(arguments[i]);
}
}
return this;
};
var listen = function(listeners){
for(var i in listeners){
this.element.addEventListener(i, listeners[i])
}
return this;
};
var elem = function(type){
this.element = document.createElement(type);
};
elem.prototype = {
attr: attr,
content: content,
listen: listen
};
var template = function(){
var result = [];
for(var i = 0; i < arguments.length; i++){
result.push(arguments[i].element);
}
return arguments
};
var construct = function(type){
return new elem(type);
};
var create = function(element){
return element.element;
};
return {
id: 'element',
create: create,
elem: construct
};
})())