Gar*_*een 2 javascript frameworks javascript-framework
我正在尝试创建一个小的Javascript"框架",我可以在我的greasemonkey脚本中使用它.我只需要非常基本的功能,所以这就是我选择不使用mooTools或DOMAssistant的原因.此外,我不会傻到把DOMAssitant放在一个20KB的Greasemonkey脚本中!我只想要一小块整洁的代码片段.
我对下面的代码有一个小问题.我认为它是因为我在$()中返回一个数组所以我得到.setStyle不是一个函数错误消息.
var fmini = {
$ : function(a) {
var i=0,obj,d;
var e = [];
while (obj = arguments[i++]) {
d = document.getElementById(obj);
d.setStyle = fmini.setStyle;
d.each = fmini.each;
e.push(d);
}
return e;
},
setStyle : function(style, value) {
if (typeof this.style.cssText !== 'undefined') {
var styleToSet = this.style.cssText;
if (typeof style === 'object') {
for (var i in style)
if (typeof i === 'string') styleToSet += ';' + i + ':' + style[i];
}
else styleToSet += ';' + style + ':' + value;
this.style.cssText = styleToSet;
}
return this;
},
each : function (functionCall) {
for (var i=0, il=this.length; i < il; i++)
functionCall.call(this[i]);
return this;
},
}
window.$ = fmini.$;
Run Code Online (Sandbox Code Playgroud)
我希望这能在我工作的时候起作用
$('bob','amy').setStyle({
'border' : '5px solid #ff0000',
'background-color' : '#ccc'
});
Run Code Online (Sandbox Code Playgroud)
编写您的方法以对从中返回的节点集进行操作$.这样既$('bob').setStyle() 和 $('bob', 'amy').setStyle()会工作.我看到你有一个通用forEach或each方法,这是一个良好的开端.
var fmini = {
$: function() {
var i=0, obj;
var e = [];
e.setStyle = fmini.setStyle;
e.each = fmini.each;
while (obj = arguments[i++]) {
e.push(document.getElementById(obj));
}
return e;
},
setStyle : function(style, value) {
return this.each(function() {
if (typeof this.style.cssText !== 'undefined') {
var styleToSet = this.style.cssText;
if (typeof style === 'object') {
for (var i in style)
if (typeof i === 'string') styleToSet += ';' + i + ':' + style[i];
}
else styleToSet += ';' + style + ':' + value;
this.style.cssText = styleToSet;
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这是jQuery第一个做/ popularze的事情.
| 归档时间: |
|
| 查看次数: |
2173 次 |
| 最近记录: |