I am Oliver

Zepto 插件写法

一般是这样的… 比较水, 并没有怎么写过.

我只是把 bootstrap 的 button 组件改了一下, 删掉了 data-api 部分, 感觉这样该够用了。

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

+function ($) {
'use strict';

// BUTTON PUBLIC CLASS DEFINITION
// ==============================

var Button = function (element, options) {
this.$element = $(element);
this.options = $.extend({}, Button.DEFAULTS, options);
}

Button.DEFAULTS = {
loadingText: 'loading...';
}

Button.prototype.setState = function (state) {};

Button.prototype.toggle = function () {};


// BUTTON PLUGIN DEFINITION
// ========================

function Plugin(option) {
return this.each(function () {
var $this = $(this),
lookup = $.fn.button.lookup,
instance = lookup[$this.data('bs.button')];

if (!instance) {
lookup[++lookup.i] = (instance = new Button(this, options));
$this.data('bs.button', lookup.i);
}

// button method
// if (option == 'toggle') {
// data.toggle();
// } else if (option) {
// data.setState(option);
// }
});
}

var old = $.fn.button;

$.fn.button = Plugin;
$.fn.button.lookup = { i: 0 };
$.fn.button.Constructor = Button;


// BUTTON NO CONFLICT
// ==================

$.fn.button.noConflict = function () {
$.fn.button = old;
return this;
};

} (Zepto);

打赏