总是得到TypeError:$(...)。不是一个功能

时间:2014-08-28 05:50:56

标签: javascript jquery jquery-plugins

我在asp.net mvc工作,我想制作jquery插件。 我试图在论坛上找到解决方案,但总是得到同样的错误。 我写了类似的东西:

(function($) {
    $.fn.extend({
        fillcombo: function(options) {
            var datadef = {
                                region:"",
                                num:"",
                                filter1:"",
                                filter2:""
            };

            options = $.extend(datadef, options);
            $.ajax({
                url:        "Main/SyncCombo",
                dataType:   "json",
                type:       "GET",
                data:     datadef ,            
                success: function (response) {

                    this.empty();
                    var optionhtml1 = '<option value="' + 0 + '"></option>';
                    this.append(optionhtml1);
                    $.each(response, function (i) {
                        var optionhtml = '<option value="' + response[i].CODE.toString() + '">' + response[i].DESCR + '</option>';
                        this.append(optionhtml);
                    });
                 }
             });

        }
    });
})(jQuery);

后来我想把它叫做:

$('#cbBox').fillcombo({ region: region, num: num, filter1: filter1, filter2: filter2 });

region,num等是我需要传递给ajax的变量... 但是萤火虫我总是得到错误

TypeError: $(...).fillcombo is not a function


...x').fillcombo({ region: region, num: num, filter1: filter1, filter2: filter2 })

我将补充一点,我不知道如何在编写插件时在ajax中定义数据,我尝试这种方式,并且像region,num等我得到相同的错误... 这是我第一次编写jquery插件,我不知道哪里弄错了。 请帮忙.. TNX

1 个答案:

答案 0 :(得分:0)

我找到解决方案,我只是从mozzila清除缓存,之后我得到this.empty()的第二个错误然后我定义var self = this;并使用self而不是这个...