【发布时间】:2010-10-06 01:28:45
【问题描述】:
我正在尝试创建一个可以在我的greasemonkey 脚本中使用的小型Javascript“框架”。我只需要非常基本功能,所以这就是我选择不使用mooTools 或DOMAssistant 的原因。再说了,我不会傻傻的把DOMAssitant放到一个20KB的Greasemonkey脚本里!我只想要一个小而整洁的sn-p代码。
我对下面的代码有一个小问题。我认为是因为我在 $() 中返回了一个数组,所以我得到 .setStyle is not a function 错误消息。
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.$;
我希望这样做时可以使用
$('bob','amy').setStyle({
'border' : '5px solid #ff0000',
'background-color' : '#ccc'
});
【问题讨论】:
-
在其中添加更多代码格式
-
请使用常规、可读的 JavaScript 开发您的库;在你让它工作之后,你总是可以通过一个缩小器来管道它......
-
对不起!这段代码应该是多行的,但 stackoverflow 不同意我的看法!我正在尝试习惯您使用格式代码的方式。我有它在多行,但它现在削减了一些代码。
标签: frameworks javascript javascript-framework