jQuery:单独文件中的模块化插件使:“TypeError:this.each不是函数”

时间:2014-02-02 14:44:28

标签: javascript jquery jquery-plugins

我想将我的函数分组到一个节点中,并在像这样的元素上使用它们:

$('a.add-order').myCMS.order.add();

我知道我的JavaScript知识(jQuery也很差)但是可以在这样的结构中使用不同文件中的功能/方法:

/js/myCMS/order/add.js
/js/myCMS/order/change.js
/js/myCMS/customer/add.js
/js/myCMS/customer/change.js

之后只在客户页面上制作:

<script scr="/js/myCMS/customer/add.js"></script>
<script scr="/js/myCMS/customer/change.js"></script>

并在页面上仅订购那些文件:

<script scr="/js/myCMS/order/add.js"></script>
<script scr="/js/myCMS/order/change.js"></script>

我的问题是因为我不想拥有一个庞大的插件,而是拥有一些较小的,易于管理的文件,其中包含我的模块。

我准备了一些order/add/js文件,但我收到TypeError: this.each is not a finction错误:

(function ($) {
    if ($.fn.myCMS === undefined) {
        $.extend($.fn, {myCMS : function(){return this;} });
    }
    if ($.fn.myCMS.order === undefined) {
        $.extend($.fn.myCMS, {order : function(){return this;} });
    }
    $.extend($.fn.myCMS.order,
        {
            add: function (customer_pesel) {
                return this.each(function(){
                    console.log('setiing PESEL ' + customer_pesel);
                    $(this).click(function (e) {
                        e.preventDefault();
                        alert(customer_pesel);
                    });
                })
            }
        }
    );
}(jQuery));

0 个答案:

没有答案