1

我正在为简单的模板编写一个插件,虽然我还没有开始......

我不断收到以下错误:

Uncaught TypeError: Object function (e,n){return new x.fn.init(e,n,t)} has no method 'tmpl' 

目前的插件代码是:

$.fn.tmpl = function(template, options)
{

    var defaults = {
        file: '',
        callback: function(){}
    }

    var options = $.extend(defaults, options);

    function parse()
    {



    }

};

这就是我调用函数的方式:

var template = $.tmpl('user-profile-feed-item');

我已经将 jQuery 2.0.1 包含在此文件的参考之上,并且正在加载此文件,但它只是不想工作,而且我没有想法。

提前致谢。

4

2 回答 2

2

你想创建 jQuery 函数而不是插件。它可能是这样的

$.tmpl = function(template, options)
{

    var defaults = {
        file: '',
        callback: function(){}
    }

    var options = $.extend(defaults, options);

    function parse()
    {



    }

};
于 2013-06-11T23:31:55.490 回答
1

jsFiddle Demo without errors

您附加tmpl到 jQuery 原型。如果您实例化一个 jQuery 对象,您只能访问原型。换句话说,你需要调用 jQuery

var template = $().tmpl('user-profile-feed-item');

编辑

jsFiddle Demo

这是您使用的代码示例,它可能有助于指出扩展 jQuery 原型的一些用途。

$.fn.tmpl = function(template, options)
{
 var me = this;//this will refer to the current jQuery object, console.log(this) to see more
 var defaults = {
    file: '',
    callback: function(){}
 };

 var options = $.extend(defaults, options);

 defaults.parse = function()
 {
  alert(me.html());
 };

 return defaults;

};
var template = $("#d").tmpl('user-profile-feed-item');
template.parse();
于 2013-06-11T23:31:34.253 回答