jquery扩展插件开发方法

来源:互联网 发布:jquery创建json数组 编辑:程序博客网 时间:2024/04/30 10:22

jquery扩展插件开发方法:

/* * jquery.cwgis_wf.js * 扩展插件函数库 * vp;hsg * create date:2015-09 * 采用http://tool.css-js.com/index.php加密压缩工具 * 生成jquery.cwgis_wf.min.js *///定义扩展全局函数库//调用方法:$.wfapi_addNum(3,5); $.wfapi_subNum(5,3);; (function ($) {    $.extend({        "wfapi_addNum": function (p1, p2) {            p1 = (p1 == undefined) ? 0 : p1;            p2 = (p2 == undefined) ? 0 : p2;            var r = parseFloat(p1) + parseFloat(p2);            return r;        },        "wfapi_subNum": function (p1, p2) {            var r = 0;            p1 = (p1 == undefined) ? 0 : p1;            p2 = (p2 == undefined) ? 0 : p2;            if (p1 > p2) {                r = parseFloat(p1) - parseFloat(p2)            }            return r;        }    });})(jQuery);

/** * jquery.radio.js * radio - jQuery EasyUI *@author ____′↘夏悸 *  modify date:2015-09 by hsg * *  verticalAlign:"middle", */(function ($) {var STYLE = {radio : {cursor : "pointer",background : "transparent url('data:image/gif;base64,R0lGODlhDwAmANUAAP////z8/Pj4+Ovr6/v7++7u7uPj493d3ff39/Ly8vT09ICAgPX19a+vr+Li4urq6vn5+fr6+v39/dXV1efn5+bm5uTk5ODg4N7e3v7+/vHx8fDw8O3t7e/v74eHh+Hh4c3NzdfX1+np6eXl5cDAwNra2t/f38/Pz/Pz8/b29sbGxsHBwc7OzsLCwujo6NHR0by8vL29vcXFxb+/v7m5udPT09jY2MPDw7u7u7i4uNLS0uzs7AAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAPACYAAAb/QIBwSCwaj0VGSIbLzUAXQfFDap1KjktJVysMHTHQ4WKgPAqaymQDYJBYh4/FNSgkGIjBgRC6YRwjIjsddwIRAQ4cKi8GFSIcGygphgEBBRYwB2ZoCggQBJUBCBg0FHV3nqChBAcrFYQMlKGVAgYnJpKyswEJDwYTqbuhAwoQEw+qwgoDEgAbNhzCAQoiUkIaGAYdCAQCCQMD1kMEBSMmBxbEzUjs7e7v8EJKTE5Q4kJUVlhaXF5CYGLIbEqzps2bOHNO4dHDxw+gAgIyREBAKdGiRgUMNPDQwICqS5nMQGiwoGSDDJVGlaqTwUPJBR4AVGLlihABkiZRBqh1S1IELY0cDUio1OtXKgkZAGQYWomYMWTSpjFzBk0aNXHYtHHzBu4eAHLm0KmLR5ZIEAA7') no-repeat center top",verticalAlign : "top",height : "18px",width : "16px",display: "block",marginTop : "0px",            margin:"0px 0px 0px 0px"},span : {"float" : "left",display : "block",margin : "0px 2px",marginTop : "2px"},label : {marginTop : "3px",marginRight : "1px",display : "block","float" : "left",fontSize : "12px",cursor : "pointer"}};function rander(target) {    var jqObj = $(target);    jqObj.css('display', 'inline-block');    //获取当前对象下的所有单选框对象集合    var radios = $("input:radio", jqObj);      var checked;    //    radios.each(function ()    {        var jqRadio = $(this);        var jqWrap = $('<span/>').css(STYLE.span);        var jqLabel = $('<label/>').css(STYLE.label);        var jqRadioA = $('<a/>').data('lable', jqLabel).addClass("RadioA").css(STYLE.radio).text(' ');        var labelText = jqRadio.data('lable', jqLabel).attr('label'); //获取显示标签内容        jqRadio.hide();        jqRadio.after(jqLabel.text(labelText));        jqRadio.wrap(jqWrap);        jqRadio.before(jqRadioA);        if (jqRadio.prop('checked')) {            checked = jqRadioA;        }        //标签单击事件        jqLabel.click(function () {            (function (rdo) {                rdo.prop('checked', true);                radios.each(function () {   //for (var i = 0; i < radios.length; i++)                    var rd = $(this);  //$(radios[i]); //                    var y = 'top';                    if (rd.prop('checked')) {                        y = 'bottom';                    }                    rd.prev().css('background-position', 'center ' + y);                });            })(jqRadio);        });        jqRadioA.click(function () {            $(this).data('lable').click();        });    });    if (checked) {  //设置已选中radio控件显示为选中        checked.css('background-position', 'center bottom');    }};//radio控件的构造函数$.fn.radio = function (options, param) {if (typeof options == 'string') {return $.fn.radio.methods[options](this, param);}options = options || {};return this.each(function () {if (!$.data(this, 'radio')) {$.data(this, 'radio', {options : $.extend({}, $.fn.radio.defaults, options)});rander(this);   //渲染radio控件显示样式} else {var opt = $.data(this, 'radio').options;  //获取属性值data-options=$.data(this, 'radio', {options : $.extend({}, opt, options)});}});};    //给类radio添加两个插件方法    //调用方法$('#div_radio').radio('getValue');return val.name;$.fn.radio.methods = {getValue : function (jq) {var checked = jq.find('input:checked');var val = {};if (checked.length)val[checked[0].name] = checked[0].value;return val;},value: function (jq) {    var checked = jq.find('input:checked');    var val = '';    if (checked.length) {        val = checked[0].value;    }    return val;},check : function (jq, val) {if (val && typeof val != 'object') {var ipt = jq.find('input[value=' + val + ']');ipt.prop('checked', false).data('lable').click();}}};    //对象级别的插件函数扩展    //调用方法$('#div_radio').getValue();  .setValue('0');$.fn.extend({    getValue: function () {        var jq = $(this);        var checked = jq.find('input:checked');        var val = '';        if (checked.length) {            val = checked[0].value;        }        return val;    },    setValue: function (val) {        var jq = $(this);        if (val && typeof val != 'object') {            var ipt = jq.find('input[value=' + val + ']');            ipt.prop('checked', false).data('lable').click();        }    }});//定义radio默认样式$.fn.radio.defaults = {style : STYLE};//添加radio控修的到easyui插件库中if ($.parser && $.parser.plugins) {$.parser.plugins.push('radio');}})(jQuery);



0 0