/** * 通用地区选择组件 * wanghan */ (function($){ window.selcity={ callBack:function(targetId,data){ var opts = $("#"+targetId).selcity('getOptions'); cityDiv=opts.cityDiv; $(cityDiv).hide(); if ($.isFunction(opts.callBack)) { opts.callBack(data); } } } function init(target){ var opts = $.data(target, 'selcity').options; var defaultCode=opts.defaultCode; var targetId=$(target).attr("id") var cityDiv=$("
"); opts.cityDiv=cityDiv; $(target).after(cityDiv); $(target).after(""); $(cityDiv).load(CTX+"/com/city/index.xf?defaultCode="+defaultCode+"&targetId="+targetId) ; $(target).on("click",function(){ cityDiv.toggle(); }); $(document).bind("click",function(e){ //id为menu的是菜单,id为open的是打开菜单的按钮 if($(e.target).closest(cityDiv).length == 0 && $(e.target).closest(target).length == 0){ //点击id为menu之外且id不是不是open,则触发 cityDiv.hide(); } }); } $.fn.selcity= function(options, param){ if (typeof options == 'string'){ return $.fn.selcity.methods[options](this, param); } options = options || {}; return this.each(function(){ var state = $.data(this, 'selcity'); if (state){ $.extend(state.options, options); } else { state = $.data(this, 'selcity', { options: $.extend({}, $.fn.selcity.defaults, options) }); init(this); } }); //return this; }; $.fn.selcity.methods = { getOptions: function(jq){ return $.data(jq[0], 'selcity').options; } }; $.fn.selcity.defaults = { }; })(jQuery);