当前位置:  开发笔记 > 编程语言 > 正文

轻量级Javascript框架

如何解决《轻量级Javascript框架》经验,为你挑选了1个好方法。

我正在尝试创建一个小的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.$;

我希望这能在我工作的时候起作用

  $('bob','amy').setStyle({
    'border' : '5px solid #ff0000',
    'background-color' : '#ccc'
    });

Crescent Fre.. 6

编写您的方法以对从中返回的节点进行操作$.这样既$('bob').setStyle() $('bob', 'amy').setStyle()会工作.我看到你有一个通用forEacheach方法,这是一个良好的开端.

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;
            }
        })
    }
}

顺便说一句,这是jQuery第一个做/ popularze的事情.



1> Crescent Fre..:

编写您的方法以对从中返回的节点进行操作$.这样既$('bob').setStyle() $('bob', 'amy').setStyle()会工作.我看到你有一个通用forEacheach方法,这是一个良好的开端.

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;
            }
        })
    }
}

顺便说一句,这是jQuery第一个做/ popularze的事情.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有