老师有问题
来源:3-2 改写搜索框功能--自动完成
CC陈十一
2019-04-22 22:23:33
(function($){
'use strict';
function Search($elem,options){
this.$elem=$elem;
this.$options=options;
this.$form=this.$elem.find('.form-search');
this.$input=this.$elem.find('.search-inputbox');
this.$layer=this.$elem.find('.search-layer');
this.$elem.on('click','.search-btn',$.proxy(this.submit,this));
if(this.options.autocomplete){
//截止这次视频3分钟之前我都是跟着老师写的,但是会报错,说options.autocomplete是未定义的,后来我把它改成
//options.autocomplete或是this.$options.autocomplete就不会报错,这是为什么
this.autocomplete();
}
};
Search.DEFAULTS={
autocomplete:false,
url:'https://suggest.taobao.com/sug?code=utf-8&_ksTS=1555933233907_926&callback=jsonp927&k=1&area=c2c&bucketid=10&q=',
css3:false,
js:false,
animation:'fade'
};
Search.prototype.submit=function(){
if($.trim(this.$input.val())===''){
return false;
}
this.$form.sumbit();
};
Search.prototype.autocomplete=function(){
this.$input.on('input',$.proxy(this.getData,this));
};
Search.prototype.getData=function(){
var self=this;
$.ajax({
url:this.options.url+this.$input.val(),
dataType:'jsonp'
}).done(function(data){
self.$elem.trigger('search-getData',[data]);
}).fail(function(){
self.$elem.trigger('search-noData');
});
};
Search.prototype.showLayer=function(){
};
Search.prototype.hidelayer=function(){
};
$.fn.extend({
search: function(option) {
return this.each(function() {
var $this=$(this),
search=$this.data('search'),
options = $.extend({}, Search.DEFAULTS, $(this).data(), typeof option==='object'&&option);
// search(this, options);
if(!search){//解决多次调用search问题
$this.data('search',search=new Search($this,options));
}
if(typeof search[option]==='function'){
search[option]();
}
});
}
});
})(jQuery);2回答
同学你好,意思是这个条件会报错是吗?

而视频中老师用的是options:

所以会有问题,不是sublime版本的问题。
祝学习愉快!
CC陈十一
提问者
2019-04-22
是不是因为sublime版本的问题
相似问题