创建一个不破坏链的jquery插件

时间:2012-01-25 02:02:02

标签: jquery

当我移动CSS时,我编写了这个函数来保存头痛(它将CSS字符串转换为对象)。我希望能够将它用作.css()函数的插入。

jQuery.fn.cCSS = function(css) {
    return this.each(function(){
    var css_obj = {};
    var tmx = "";
    ocss = css.split(";");
    $.each(ocss, function (index, elem){
        tmx = elem.trim().split(':');
        if (tmx[0].length > 0) 
            css_obj[tmx[0]] = tmx[1].trim();

    });
         return  $(this).css(css_obj);
        //return $;
    });
    };

})(jQuery);

我的问题是当我以“流利”表示法使用它时,我总是得到一个空错误。

未捕获的TypeError:无法调用null

的方法'addClass'

我有点困惑,为了不“破坏链条”而必须返回什么

3 个答案:

答案 0 :(得分:1)

你回来了this.each(...).each()的输出很可能只是null。

答案 1 :(得分:1)

您可能想查看错误的行号。我不认为它与此功能有任何关系。该功能本身对我有用。

http://jsfiddle.net/R8UtV/<<演示

特别是因为没有调用addClass,除非你在调用函数时运行它?

$('#test').cCSS('bleh...').addClass('foo');

答案 2 :(得分:0)

毕竟,你想要return this,你希望在同一个对象上调用下一个函数!