jquery城市选择器

jquery.citypicker(自己写的jQuery中国城市选择器)

*@QQ:164068300
 * @版本 jquery.citypicker.js(version="1.1.0")
 * @使用方法:
 * 1.jquery.citypicker就jquery插件,使用此插件前必须先引用jquery.js库文件
 * 2.再引用此库文件,引用方式:<script type="text/javascript" src="jquery.citypicker.js"></script>
 * 3.引用CSS样式文件和图片:<link type="text/css" href="css/jquery.citypicker.css" rel="stylesheet" />
 */
;
cities = new Array();
pro = new Array("港澳台藏", "直辖市", "河北", "山西", "辽宁", "吉林", "江苏", "浙江", "安徽", "福建", "江西", "山东", "河南", "湖北", "湖南", "广东", "广西", "海南", "四川", "贵州", "云南", "陕西", "甘肃", "青海", "宁夏", "新疆", "内蒙", "黑龙江");
cities[‘港澳台藏‘] = new Array("澳门", "香港", "台湾", "拉萨");
cities[‘直辖市‘] = new Array("北京", "上海", "重庆", "天津");
cities[‘河北‘] = new Array("唐山", "邯郸", "保定", "承德", "秦皇岛", "石家庄");
cities[‘山西‘] = new Array("太原", "大同", "阳泉", "长治", "晋城", "晋中", "运城", "临汾");
cities[‘内蒙‘] = new Array("呼和浩特", "呼伦贝尔", "包头", "乌海", "赤峰", "兴安盟");
cities[‘辽宁‘] = new Array("沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", "阜新", "辽阳", "铁岭");
cities[‘吉林‘] = new Array("长春", "吉林", "四平", "辽源", "通化", "松原");
cities[‘黑龙江‘] = new Array("哈尔滨", "大兴安岭", "鸡西", "大庆", "黑河", "齐齐哈尔");
cities[‘江苏‘] = new Array("南京", "无锡", "徐州", "常州", "苏州", "南通", "扬州", "镇江", "连云港");
cities[‘浙江‘] = new Array("杭州", "宁波", "温州", "嘉兴", "绍兴", "金华", "衢州", "台州", "丽水");
cities[‘安徽‘] = new Array("合肥", "芜湖", "蚌埠", "淮南", "淮北", "铜陵", "安庆", "黄山", "马鞍山");
cities[‘福建‘] = new Array("福州", "厦门", "莆田", "三明", "泉州");
cities[‘江西‘] = new Array("南昌", "九江", "鹰潭", "赣州", "上饶", "景德镇");
cities[‘山东‘] = new Array("济南", "青岛", "烟台", "德州", "聊城", "滨州", "荷泽");
cities[‘河南‘] = new Array("郑州", "开封", "洛阳", "安阳", "许昌", "南阳", "周口", "驻马店", "三门峡");
cities[‘湖北‘] = new Array("武汉", "黄石", "宜昌", "荆门", "荆州", "黄冈", "咸宁", "恩施");
cities[‘湖南‘] = new Array("长沙", "湘潭", "岳阳", "常德", "益阳", "郴州", "湘西", "张家界");
cities[‘广东‘] = new Array("广州", "韶关", "深圳", "珠海", "汕头", "佛山", "江门", "湛江", "惠州", "东莞", "中山");
cities[‘广西‘] = new Array("南宁", "柳州", "桂林", "北海", "玉林");
cities[‘海南‘] = new Array("海口", "三亚", "海南沿革");
cities[‘四川‘] = new Array("成都", "泸州", "德阳", "绵阳", "乐山", "眉山", "宜宾", "攀枝花");
cities[‘贵州‘] = new Array("贵阳", "遵义", "安顺", "铜仁", "六盘水");
cities[‘云南‘] = new Array("昆明", "曲靖", "玉溪", "保山", "丽江", "大理");
cities[‘陕西‘] = new Array("西安", "铜川", "宝鸡", "咸阳", "延安", "汉中");
cities[‘甘肃‘] = new Array("兰州", "金昌", "白银", "天水", "嘉峪关");
cities[‘青海‘] = new Array("西宁", "海东", "海北", "黄南", "海南", "果洛", "玉树", "海西");
cities[‘宁夏‘] = new Array("银川", "吴忠", "固原", "中卫");
cities[‘新疆‘] = new Array("乌鲁木齐", "克拉玛依", "哈密", "伊犁", "吐鲁番");
;
(function($){
    jQuery.fn.extend({
        "citypicker": function(){
            return this.each(function(){
                new jQuery.CityPicker(this);
            });
        }
    });
    jQuery.CityPicker = function(obj){
        var $input = $(obj);
        //产生一个选择器
        var $container = setupContainer();
        
        $input.click(function(event){
            //设置当前不可读
            this.readOnly = true;
            //得到输入框的位置
            var offset = $input.offset();
            //得到输入框的高度,宽度
            var height = $input.height();
            var width = $input.width();
            //计算选择器的位置
            var cont_top = offset.top + height;
            var cont_left = offset.left;
            //设置选择器出现的位置
            $container.appendTo($("body")).css({
                ‘top‘: cont_top + 5,
                ‘left‘: cont_left
            });
            if ($container.is(":hidden")) {
                //当前选择器是隐藏的
                $container.show(10);
            }
            else 
                if ($container.is(":visible")) {
                    //当前选择器是显示的
                    //停止事件冒泡
                    event.stopPropagation();
                }
        });
        //点击在选择器以外,隐藏它
        $(document).bind("click", function(event){
            var $target = $(event.target);
            var hideFag = $target.parent("div").attr("id");
            if (!(hideFag == "citypicker_container" || hideFag == "citypicker_caption" || hideFag == "citypicker_city" || hideFag == "citypicker_pro")) {
                $container.hide();
            }
        });
        
        //初始化选择器函数
        function setupContainer(){
            var container = document.createElement("div");
            var caption = document.createElement("div");
            var prov = document.createElement("div");
            var city = document.createElement("div");
            
            var $container = $(container).attr("id", "citypicker_container");
            var $caption = $(caption).attr("id", "citypicker_caption");
            var $prov = $(prov).attr("id", "citypicker_pro");
            var $city = $(city).attr("id", "citypicker_city");
            $container.append($caption).append($prov).append($city);
            $("<h1>选择城市</h1>").appendTo($caption);
            $("<span>关闭</span>").appendTo($caption).click(function(){
                $container.slideUp(100);
            });
            for (p in pro) {
                $("<label>" + pro[p] + "</label>").appendTo($prov).click(function(){
                    var i = $(this).text();
                    //被点了的省份字体色改变
                    $(this).css({
                        ‘color‘: ‘blue‘,
                    });
                    //清空城市,让另外一个省的城市显示在此处
                    $city.empty();
                    for (c in cities[i]) {
                        $("<label>" + cities[i][c] + "</label>").appendTo($city).click(function(){
                            //这里把相应的值设置到输入框当中去
                            $(obj).val($(this).text());
                            //被点了的城市字体色改变
                            $(this).css({
                                ‘color‘: ‘blue‘,
                                ‘font-weight‘: ‘bold‘
                            });
                            //选择以后隐藏选择器
                            $container.fadeOut("fast");
                        });
                    }
                });
            }
            return $container;
        }
    }
})(jQuery);

时间: 2024-10-16 08:19:19

jquery城市选择器的相关文章

谜一样的jquery之$选择器

jquery是一个强大的js类库,提供了很多便利的操作方法并兼容不同的浏览器,一旦使用便欲罢不能,根本停不下来,今天我们就来解读一下这个神秘的jquery源代码. 前几天思考再三,自己尝试着封装了一下jquery的$选择器,然而并不完善,我只对id,class,和标签选择器进行了封装,发现其实如果实现浅层的封装那么我们很容易就能够实现,但是一旦我们尝试着选择器的层次嵌套就会出来很多大大小小的坑! 下面我们先来看一下我个人封装的jquery的选择器部分. window.$ = function (

IOS开发之自制城市选择器(省份+城市+区/县城)(storyboard版)

第一步:新建single工程CitySelectedDemo 第二步:导入资源area.plist(千万勾选copy选项,后面附area.plist文件资源) 第三步:设计mian.storyboard ——>拖拽UITextField控件(运行后点击此输入框会弹出选择器,选择我们想要的城市地址后结果显示在输入框中): ——>拖拽Toolbar控件和UIPickerView控件组成城市选择器:(将Toolbar控件的Item更名为“完成”,将来点击“完成”按钮结束地址的选择,如果“完成”按钮在

jquery颜色选择器

本站下载 第二种:纯JAVASCRIPT: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2311"> <title>DW调色板</title> <script> var ColorHex=new Array('00','33','66','99','CC','FF') var SpColo

hotCity 小程序城市选择器, 城市数据库可自己导出

hotCity 城市选择器, 城市数据库可自己导出 后台数据API 由HotApp小程序统计提供并维护,如果需要导出并部署在公司的生产环境,最后有SQL导出下载地址 开源地址 https://github.com/hotapp888/hotcity 使用方法 复制pages/district到你的项目目录 把样式文件district.wxss引入到您调用本插件的作用域 @import "你的路径/district/wxParse.wxss"; 在需要使用的模版的x.wxml中引入模版文

jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法

1 jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 2 3 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 4 $("div") 选择所有的div标签元素,返回div元素数组 5 $(".myClass") 选择使用myClass类的css的所有元素 6 $("*") 选择文档中的所有的元素,可

关于jquery ID选择器的看法

最近看到一道前端面试题: 请优化selector写法:$(".foo div#bar:eq(0)") 我给出的答案会是: 1. $("#bar") 2.  $("div#bar") 下面说说我为什么会给出两种答案 1. 因为页面要求ID是唯一的,题目中的语句,可以直接优化成ID选择 2. 因为jQuery的选择器引擎用的是Sizzle,而$("div#bar")这样的写法,在Sizzle内部,会是一个从右往左的查找顺序,也就是

jQuery 复合选择器应用的几个例子

这篇文章主要介绍了jQuery 复合选择器应用的几个例子,本文例子所引用的jQuery版本为 jQuery-1.8.3.min.js,喜欢的朋友可以学习下 <!-- 本文例子所引用的jQuery版本为 jQuery-1.8.3.min.js --> 一. 复合选择器对checkbox的相关操作 ? 1 2 3 4 5 <input type="checkbox" id="ckb_1" />  <input type="chec

swift3.0 三级联动UIPickerView城市选择器

初学swift没几天,就试着自己写了一个城市选择器,纯swift代码. ViewController.swift文件中: // // ViewController.swift // swift demo - UIPickerView之城市选择器 // // Created by 柯其谱 on 17/3/11. // Copyright ? 2017年 柯其谱. All rights reserved. // import UIKit //MARK: View life cycle class V

一步步实现一个城市选择器

城市选择器 今天我们一起实现一个城市选择器.O.O 代码下载: 城市选择器 - 下载频道 - CSDN.NET http://download.csdn.net/detail/baidu_31093133/9675482 效果图预览 主要包含以下内容: 1.自动定位所在城市 2.热门城市列表展示 3.所有城市列表的展示 4.输入城市名或者城市拼音搜索对应城市 5.右侧的slidebar城市列表导航栏 请大家先下载Demo然后再一边看demo一边看博客.因为博客里很多代码因为比较简单就不贴了. 首