下拉自动提示类的解析
公司使用的下拉自动提示类使用的是? j.suggest.js
?
简单分析下源码:
?
//download by http://www.codefans.net(function($) { $.suggest = function(input, options) { options.onSelect.apply(options.cityList[$input[0].value]); } $.fn.suggest = function(source, options) { this.each(function() { new $.suggest(this, options); }); return this; };})(jQuery);?
其中:
?
(function($) {.......})(jQuery);
?
是对JQUERY内部方法的扩展
?
//对所有的JQUERY实例添加 方法 suggest
? $.fn.suggest = function(source, options) {
??? this.each(function() {
????? new $.suggest(this, options);
??? });
??? return this;
? };
?
如此,所有的 $("***")都可以使用 suggest方法.
?
this , 就把jquery对象自身作为参数传递到? 方法 suggest(this, options) 中 .
?
options 参数是一个JSON对象, 其中 onSelect 是一个 function 函数, 使用了 .apply 方法来调用这个参数函数.
?
?
suggest(){
?????? options.onSelect.apply(options.cityList[$input[0].value]);
}
?
onSelect函数如下 :
?
onSelect:fn
?
function(){
????? if(query.cityName != this[1]){
??????? query.cityId = this[6];
??????? query.isUpCity = true;
????? }else{
??????? query.isUpCity = false;
????? }
??? }
?
该函数中, 可以使用this来使用传入的参数 :? options.cityList[$input[0].value]? 是一个数组对象 .
?
这样的好处是, 可以把函数内部处理的结果直接拿到页面来处理.
?
?
?
?
?
?
?
?
?
?