博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery改造插件,添加回调函数
阅读量:6606 次
发布时间:2019-06-24

本文共 2562 字,大约阅读时间需要 8 分钟。

callback这个参数必须是函数才有效。才能起到回调的作用。

 

foo3不是函数的时候,弹出fuck you

 

jQuery实例

原函数

$.fn.citySelect=function(settings)

添加回调

$.fn.citySelect=function(settings, changeHandle) // 添加回调函数changeHandle

给回调函数赋值

//选项变动赋值事件        var selectChange = function (areaType) {             if(typeof changeHandle === 'function'){ // 判断callback是否是函数                var prov_id = prov_obj.get(0).selectedIndex;                var city_id = city_obj.get(0).selectedIndex;                var dist_id = dist_obj.get(0).selectedIndex;                if(!settings.required){                    prov_id--;                    city_id--;                    dist_id--;                };                if(dist_id<0){                    var data = {                        prov: city_json.citylist[prov_id].p,                        city: city_json.citylist[prov_id].c[city_id].n,                        dist: null                    };                }else{                    var data = {                        prov: city_json.citylist[prov_id].p,                        city: city_json.citylist[prov_id].c[city_id].n,                        dist: city_json.citylist[prov_id].c[city_id].a[dist_id].s                    };                }                changeHandle(data, areaType); // 返回两个处理好的数据            }        };

获取省市县数据data以及触发的change事件类型areaType

// 选择省份时发生事件            prov_obj.bind("change",function(){                cityStart();                selectChange('prov'); // 返回数据            });            // 选择市级时发生事件            city_obj.bind("change",function(){                distStart();                selectChange('city'); // 返回数据            });                        // 选择区级时发生事件            dist_obj.bind("change",function(){                selectChange('dist'); // 返回数据            });

在各个事件中执行

 

前端使用

$("#s_city").citySelect({    prov: "江苏省",    city: "宿迁市",    dist: "宿城区",    nodata: "none"},function(data, type) {    selectAgent(data.city, data.dist);});

使用回调回来的data数据,用于selectAgent函数中

function selectAgent(city,district){        $.ajax({            type:"POST",            url:"{sh::U('Index/ajax',array('todo'=>'getagent'))}",            data:"city="+city+"&district="+district,            success:function(json){                json = JSON.parse(json);                opt_str = ""                if(json.status == 1){                    $.each(json.data,function(index,con){                        opt_str += ""                    })                }                $('#agent_id').html(opt_str);            }        });    }

去ajax获取相应的代理商数据。

 

改造插件完成。

 

转载地址:http://vigio.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
学习开源框架WebX的总结
查看>>
移动web开发常用的框架(四)
查看>>
博为峰JavaEE技术文章 ——MyBatis <choose>标签使用方法
查看>>
Java的字符流和字节流 比较
查看>>
Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
查看>>
网络安全 趋势-搜集
查看>>
java基础笔记
查看>>
如何使用腾讯云开发一款 AR 应用介绍
查看>>
OpenStack CEPH Liberty 统一存储 bug解决
查看>>
深入分析免流(非小白教程)
查看>>
wait_event()函数集合详解
查看>>
sublime正则全局替换字符串
查看>>
golang emoji表情处理
查看>>
arduino
查看>>
OSPF高级配置与相关概念
查看>>
vCenter 6.0安装部署
查看>>
first的使用
查看>>
2015.10.23 信息系统项目管理师作业
查看>>
concurrentHashmap实现原理
查看>>