代码之家  ›  专栏  ›  技术社区  ›  Frink

始终获取TypeError:$(…).不是函数

  •  0
  • Frink  · 技术社区  · 11 年前

    我在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 回复  |  直到 11 年前
        1
  •  0
  •   Frink    11 年前

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