zoukankan      html  css  js  c++  java
  • easyui源码翻译1.32--LinkButton(按钮)

    前言

    使用$.fn.linkbutton.defaults重写默认值对象。下载该插件翻译源码

    按钮组件使用超链接按钮创建。它使用一个普通的<a>标签进行展示。它可以同时显示一个图标和文本,或只有图标或文字。按钮的宽度可以动态和折叠/展开以适应它的文本标签。

    源码

     

    /**
     * jQuery EasyUI 1.3.2
     * 
     * 翻译:lbq
     *
     *g=this p=g.options
     */
    (function ($) {
        //初始化函数
        function _init(target) {
            var p = $.data(target, "linkbutton").options;
            $(target).empty();
            $(target).addClass("l-btn");
            if (p.id) {
                $(target).attr("id", p.id);
            } else {
                $(target).attr("id", "");
            }
            if (p.plain) {
                $(target).addClass("l-btn-plain");
            } else {
                $(target).removeClass("l-btn-plain");
            }
            if (p.text) {
                $(target).html(p.text).wrapInner("<span class="l-btn-left">"
                    + "<span class="l-btn-text">"
                    + "</span>" + "</span>");
                if (p.iconCls) {
                    $(target).find(".l-btn-text").addClass(p.iconCls).addClass(p.iconAlign == "left" ? "l-btn-icon-left" : "l-btn-icon-right");
                }
            } else {
                $(target).html("&nbsp;").wrapInner("<span class="l-btn-left">"
                    + "<span class="l-btn-text">"
                    + "<span class="l-btn-empty"></span>"
                    + "</span>" + "</span>");
                if (p.iconCls) {
                    $(target).find(".l-btn-empty").addClass(p.iconCls);
                }
            }
            $(target).unbind(".linkbutton").bind("focus.linkbutton", function () {
                if (!p.disabled) {
                    $(this).find("span.l-btn-text").addClass("l-btn-focus");
                }
            }).bind("blur.linkbutton", function () {
                $(this).find("span.l-btn-text").removeClass("l-btn-focus");
            });
            setDisabled(target, p.disabled);
        };
        //设置禁用
        function setDisabled(target, disabled) {
            var g = $.data(target, "linkbutton");
            if (disabled) {
                g.options.disabled = true;
                var href = $(target).attr("href");
                if (href) {
                    g.href = href;
                    $(target).attr("href", "javascript:void(0)");
                }
                if (target.onclick) {
                    g.onclick = target.onclick;
                    target.onclick = null;
                }
                $(target).addClass("l-btn-disabled");
            } else {
                g.options.disabled = false;
                if (g.href) {
                    $(target).attr("href", g.href);
                }
                if (g.onclick) {
                    target.onclick = g.onclick;
                }
                $(target).removeClass("l-btn-disabled");
            }
        };
        //实例化按钮
        $.fn.linkbutton = function (options, parm) {
            if (typeof options == "string") {
                return $.fn.linkbutton.methods[options](this, parm);
            }
            options = options || {};
            return this.each(function () {
                var g = $.data(this, "linkbutton");
                if (g) {
                    $.extend(g.options, options);
                } else {
                    $.data(this, "linkbutton", {
                        options: $.extend({},
                            $.fn.linkbutton.defaults,
                            $.fn.linkbutton.parseOptions(this), options)
                    });
                    $(this).removeAttr("disabled");
                }
                _init(this);
            });
        };
        //方法定义(3)
        $.fn.linkbutton.methods = {
            //返回属性对象
            options: function (jq) {
                return $.data(jq[0], "linkbutton").options;
            },
            //启用按钮
            enable: function (jq) {
                return jq.each(function () {
                    setDisabled(this, false);
                });
            },
            //禁用按钮
            disable: function (jq) {
                return jq.each(function () {
                    setDisabled(this, true);
                });
            }
        };
        //解析器配置
        $.fn.linkbutton.parseOptions = function (target) {
            var t = $(target);
            return $.extend({},
                $.parser.parseOptions(target,
                ["id", "iconCls", "iconAlign", { plain: "boolean" }]),
                {
                    disabled: (t.attr("disabled") ? true : undefined),
                    text: $.trim(t.html()),
                    iconCls: (t.attr("icon") || t.attr("iconCls"))
                });
        };
        //默认值对象(6)
        $.fn.linkbutton.defaults = {
            id: null,//组件的ID属性
            disabled: false,//为true时禁用按钮
            plain: false,//为true时显示简洁效果
            text: "",//按钮文字
            iconCls: null,//显示在按钮文字左侧的图标(16x16)的CSS类ID
            iconAlign: "left"//按钮图标位置。可用值有:'left','right'
        };
    })(jQuery);
    View Code

    示例代码

     

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Basic LinkButton - jQuery EasyUI Demo</title>
        <link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
        <link rel="stylesheet" type="text/css" href="../../themes/icon.css">
        <link rel="stylesheet" type="text/css" href="../demo.css">
        <script type="text/javascript" src="../../jquery-1.8.0.min.js"></script>
        <script src="../../plugins2/jquery.parser.js"></script>
        <script src="../../plugins2/jquery.linkbutton.js"></script>
    </head>
    <body>
        <h2>Basic LinkButton</h2>
        <div class="demo-info">
            <div class="demo-tip icon-tip"></div>
            <div>Buttons can be created from &lt;a/&gt; link.</div>
        </div>
        <div style="margin:10px 0;"></div>
        <div style="padding:5px;">
            <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add'">Add</a>
            <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-remove'">Remove</a>
            <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-save'">Save</a>
            <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-cut',disabled:true">Cut</a>
            <a href="#" class="easyui-linkbutton">Text Button</a>
        </div>
        
    </body>
    </html>
    View Code

    插件效果

    热爱编程,热爱技术,热爱生活
  • 相关阅读:
    Django各个文件中常见的模块导入
    js模板(template.js)实现页面动态渲染
    Netty 源码 Channel(一)概述
    Netty 源码 NioEventLoop(三)执行流程
    Netty 源码(一)Netty 组件简介
    Netty 源码(二)NioEventLoop 之 Channel 注册
    Java 算法(一)贪心算法
    Netty Reator(三)Reactor 模型
    Netty Reator(二)Scalable IO in Java
    Reactor 模型(一)基本并发编程模型
  • 原文地址:https://www.cnblogs.com/DemoLee/p/3500775.html
Copyright © 2011-2022 走看看