Juqery插件编写 基础说明

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
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index3</title>
 
    <script src="/plugins/jquery/jquery-1.9.1.js"></script>
    <script type="text/javascript">
 
 
 
        $(function ($) { // 去除冲突
 
            // 实现$("#txt1").SpecialAlertTip({ width: 300 });
            $.fn.SpecialAlertTip = function (options) {
 
                var settings = {
                    width: 100,
                    defalutText: "It is Default",
                    placeholder: 'Hello Jquery pulgIn',
                    showSearch: true,
                }
                 // 合并  两个js对象  $.extend({name:1,width:23},{width:55});
                settings = $.extend(settings, options);
 
                /**
                * Constructor
                */
                function SpecialAlertTip(select, settings) {
                    debugger;
                    this.$select = $(select);
                    this.settings = settings;
                    this.create();
                }
 
 
               /**
              * Prototype class
               * 获取:             ShipBusiness.origianlSelect = $("#CustomCargoRemarkV2").data("fSelect");
               * 调用封装控件方法:   ShipBusiness.origianlSelect.reload();
              */
                SpecialAlertTip.prototype = {
                    create: function () {
                        debugger;
                        this.$select.css("width", this.settings.width + "px")
                        this.$select.css("border", "1px solid green");
                        this.$select.before('<div class="fs-label-wrap"><div class="fs-label">' + this.settings.placeholder + '</div><span class="fs-arrow"></span></div>');
                        this.$select.before('<div class="fs-dropdown hidden"><div class="fs-options"></div></div>');
                        this.reload();
                    },
 
                    reload: function () {
                        debugger;
                        if (this.settings.showSearch) {
                            var search = '<div class="fs-search"><input type="search" placeholder="' + this.settings.searchText + '" /></div>';
                            //this.$wrap.find('.fs-label-wrap').prepend(search);
                        }
                        //this.reloadDropdownLabel();
                    },
 
                    destroy: function () {
                        debugger;
 
                    }
                }
 
 
                /**
                 * Loop through each matching element
                 */
                return this.each(function () {
                    debugger;
                    var data = $(this).data('SpecialAlertTip');
 
                    if (!data) {
                        data = new SpecialAlertTip(this, settings);
                        $(this).data('SpecialAlertTip', data);
                    }
 
                    if (typeof settings == 'string') {
                        data[settings]();
                    }
                });
            }
 
        })
 
 
 
        // 使用新封装的 jquery控件
        $(document).ready(function () {
            $("#txt1").SpecialAlertTip({ width: 300 });
            //如想调用 内部方法
            var speciallTxt = $("#txt1").data('SpecialAlertTip');
            speciallTxt.reload();
            speciallTxt.settings.showSearch = false;
        })
    </script>
 
</head>
<body>
    <div>
        <div style="width:300px;border:1px solid silver;text-align:center;margin-bottom:10px;line-height:30px;font-size:18px;margin-left:auto;margin-right:auto;height:30px; "> jQuery 控件封装实例</div>
        <input type="text" id="txt1" />
    </div>
</body>
</html>

 

posted @   xiaoBai1001  阅读(278)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示