zhuguifei
2026-03-10 58402bd5e762361363a0f7d7907153c77dbb819f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/**
* jQuery EasyUI 1.3.6
* Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL or commercial licenses
* To use it on other terms please contact author: info@jeasyui.com
* http://www.gnu.org/licenses/gpl.txt
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI linkbutton Extensions 1.0 beta
* jQuery EasyUI linkbutton 组件扩展
* jeasyui.extensions.linkbutton.js
* 二次开发 流云
* 最近更新:2014-04-17
*
* 依赖项:
*   1、jquery.jdirk.js v1.0 beta late
*   2、jeasyui.extensions.js v1.0 beta late
*
* Copyright (c) 2013-2014 ChenJianwei personal All rights reserved.
* http://www.chenjianwei.org
*/
(function ($, undefined) {
 
    $.fn.linkbutton.extensions = {};
 
    function initialize(target) {
        var t = $(target), opts = t.linkbutton("options"),
            exts = opts.extensions ? opts.extensions : opts.extensions = {};
        if (!exts._initialized) {
            setStyle(target, opts.style);
            setTooltip(target, opts.tooltip);
            exts._initialized = true;
        }
    };
 
    function setIcon(target, iconCls) {
        var t = $(target), opts = t.linkbutton("options"), icon = t.find("span.l-btn-icon");
        if (iconCls) {
            if (icon.length) {
                icon.removeClass(opts.iconCls).addClass(iconCls);
            } else {
                t.find("span.l-btn-text").after("<span class=\"l-btn-icon " + iconCls + "\">&nbsp;</span>");
            }
        } else {
            icon.remove();
        }
        opts.iconCls = iconCls;
    };
 
    function setText(target, text) {
        var t = $(target), opts = t.linkbutton("options"), textSpan = t.find("span.l-btn-text");
        if (text) {
            textSpan.removeClass("l-btn-empty").text(text);
        } else {
            textSpan.addClass("l-btn-empty").html("&nbsp;");
        }
        opts.text = text;
    };
 
    function setIconAlign(target, iconAlign) {
        var t = $(target), opts = t.linkbutton("options"), span = t.find(">span");
        span.removeClass("l-btn-icon-left l-btn-icon-right l-btn-icon-top l-btn-icon-bottom").addClass("l-btn-icon-" + iconAlign);
        opts.iconAlign = iconAlign;
    }
 
    function setStyle(target, style) {
        if (style) {
            $(target).css(style);
        }
    };
 
    function setTooltip(target, tooltip) {
        var t = $(target), opts = t.linkbutton("options"), isFunc = $.isFunction(tooltip);
        opts.tooltip = tooltip;
        if (opts.tooltip) {
            var topts = { content: !isFunc ? tooltip : null };
            if (isFunc) {
                $.extend(topts, {
                    onShow: function (e) {
                        $(this).tooltip("update", tooltip.call(target, e));
                    }
                });
            }
            t.tooltip(topts);
        }
        if (opts.tooltip == false) {
            t.tooltip("destroy");
        }
    };
 
    function setPlain(target, plain) {
        var t = $(target), opts = t.linkbutton("options");
        t[(opts.plain = plain ? true : false) ? "addClass" : "removeClass"]("l-btn-plain");
    };
 
    function setSize(target, size) {
        var t = $(target), opts = t.linkbutton("options");
        t.removeClass("l-btn-small l-btn-large").addClass("l-btn-" + size);
        opts.size = size;
    };
 
 
 
    var _linkbutton = $.fn.linkbutton;
    $.fn.linkbutton = function (options, param) {
        if (typeof options == "string") {
            return _linkbutton.apply(this, arguments);
        }
        options = options || {};
        return this.each(function () {
            var jq = $(this), hasInit = $.data(this, "linkbutton") ? true : false,
                opts = hasInit ? options : $.extend({}, $.fn.linkbutton.parseOptions(this), $.parser.parseOptions(this, [
                    "tooltip"
                ]), options);
            _linkbutton.call(jq, opts);
            initialize(this);
        });
    };
    $.union($.fn.linkbutton, _linkbutton);
 
 
    var defaults = $.fn.linkbutton.extensions.defaults = {
        //  增加 easyui-linkbutton 控件的自定义属性;表示 linkbutton 按钮的自定义样式。
        style: null,
 
        //  增加 easyui-linkbutton 控件的自定义属性;表示 linkbutton 按钮鼠标放置提示。
        //      String 类型或 Function 类型,
        tooltip: null
    };
 
    var methods = $.fn.linkbutton.extensions.methods = {
        //  增加 easyui-linkbutton 控件的自定义扩展方法;设置 linkbutton 按钮的图标;该方法定义如下参数:
        //      iconCls:    String 类型值,表示要设置的新的图标样式
        //  返回值:返回表示当前 easyui-linkbutton 控件的 jQuery 链式对象;
        setIcon: function (jq, iconCls) { return jq.each(function () { setIcon(this, iconCls); }); },
 
        //  增加 easyui-linkbutton 控件的自定义扩展方法;设置 linkbutton 按钮的文字;该方法定义如下参数:
        //      text:   String 类型值,表示要设置的新的按钮文本内容
        //  返回值:返回表示当前 easyui-linkbutton 控件的 jQuery 链式对象;
        setText: function (jq, text) { return jq.each(function () { setText(this, text); }); },
 
        //  增加 easyui-linkbutton 控件的自定义扩展方法;设置 linkbutton 按钮的图标位置;该方法定义如下参数:
        //      iconAlign:   String 类型值,表示要设置的按钮的图标位置;该参数限定取值 "left"、"right"、"top"、"bottom"
        //  返回值:返回表示当前 easyui-linkbutton 控件的 jQuery 链式对象;
        setIconAlign: function (jq, iconAlign) { return jq.each(function () { setIconAlign(this, iconAlign); }); },
 
        //  增加 easyui-linkbutton 控件的自定义扩展方法;设置 linkbutton 按钮的自定义样式;该方法定义如下参数:
        //      style:   JSON-Object 类型,表示要设置的按钮的样式
        //  返回值:返回表示当前 easyui-linkbutton 控件的 jQuery 链式对象;
        setStyle: function (jq, style) { return jq.each(function () { setStyle(this, style); }); },
 
        //  增加 easyui-linkbutton 控件的自定义扩展方法;设置 linkbutton 按钮的 plain 属性;该方法定义如下参数:
        //      plain:   Boolean 类型,表示要设置的按钮的 plain 属性值
        //  返回值:返回表示当前 easyui-linkbutton 控件的 jQuery 链式对象;
        setPlain: function (jq, plain) { return jq.each(function () { setPlain(this, plain); }); },
 
        //  增加 easyui-linkbutton 控件的自定义扩展方法;设置 linkbutton 按钮的 size 属性;该方法定义如下参数:
        //      size:   String 类型,表示要设置的按钮的 size 属性值;该参数限定取值 'small','large'
        //  返回值:返回表示当前 easyui-linkbutton 控件的 jQuery 链式对象;
        setSize: function (jq, size) { return jq.each(function () { setSize(this, size); }); },
 
        //  增加 easyui-linkbutton 控件的自定义扩展方法;设置 linkbutton 按钮的 tooltip 属性;该方法定义如下参数:
        //      tooltip: String 类型或 Function 类型,表示要设置的按钮的 prompt 属性值;如果该参数值为 false,则表示销毁该按钮的 easyui-tooltip 效果;
        setTooltip: function (jq, tooltip) { return jq.each(function () { setTooltip(this, tooltip); }) }
    };
 
    $.extend($.fn.linkbutton.defaults, defaults);
    $.extend($.fn.linkbutton.methods, methods);
 
})(jQuery);