-
Notifications
You must be signed in to change notification settings - Fork 0
/
jquery.checkbutton.js
153 lines (142 loc) · 4 KB
/
jquery.checkbutton.js
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
// JavaScript Document
(function($){
/*$.widget('ui.checkbutton','ui-button', {
_create: function(){
this.element.after('<div id="'+this.element.attr('id')+'_container" class="ui-checkbutton"></div');
this.element.appendTo(checkbutton);
$('label[for="'+this.element.attr('id')+'"]').appendTo(checkbutton);
checkbutton.button(this.options).toggle(function(e){
checkbutton.find('input').attr("checked", true).change();
checkbutton.one('mouseleave',function(){
checkbutton.addClass('ui-state-hover');
});
checkbutton.hover(function(){
checkbutton.removeClass('ui-state-hover');
},function(){
checkbutton.addClass('ui-state-hover');
});
},function(e){
checkbutton.find('input').attr("checked", false).change();
checkbutton.one('mouseleave',function(){
checkbutton.removeClass('ui-state-hover');
});
checkbutton.hover(function(){
checkbutton.addClass('ui-state-hover');
},function(){
checkbutton.removeClass('ui-state-hover');
});
});
if(checkbutton.find('input').is(':checked')){
checkbutton.addClass('ui-state-hover');
}
},
destroy: function(){
console.log('destroy');
//this.element.parent().button('destroy');
},
refresh: function(){
console.log('refresh');
//checkbutton.button('refresh');
},
_setOption: function(key, value){
console.log('option');
//checkbutton.button('option',key,value);
},
_setOptions: function( options ){
console.log('options');
//checkbutton.button('option',options);
},
options: {
disabled: null,
text: true,
label: null,
icons: {
primary: null,
secondary: null
},
create: function(){
$(this).find('input').click(function(e){
e.stopImmediatePropagation();
$(this).parent().click();
});
}
},
widget: function(){
console.log('widget');
return $('#'+this.element.attr('id')+'_contain').button('widget');
},
disable: function(){
console.log('disable');
//checkbutton.button('disable');
},
enable: function(){
console.log('enable');
//checkbutton.button('enable');
}
});
})(jQuery);*/
$.widget( "ui.checkbutton", {
options: {
disabled: null,
text: true,
label: null,
icons: {
primary: null,
secondary: null
},
create: function(){
$(this).find('input').click(function(e){
e.stopImmediatePropagation();
$(this).parent().click();
});
}
},
_create: function() {
this.element.addClass( "ui-checkbutton" );
},
_init: function() {
this.refresh();
},
_setOption: function( key, value ) {
this.element.button( "option", key, value );
$.Widget.prototype._setOption.call(this,key,value);
//once jquery ui 1.9 hits switch to super
//this._super( key, value );
},
refresh: function() {
alert(JSON.stringify(this.options));
this.element.button(this.options);
this.element.toggle(function(e){
$(this).find('input').attr("checked", true).change();
$(this).one('mouseleave',function(){
$(this).addClass('ui-state-hover');
});
$(this).hover(function(){
$(this).removeClass('ui-state-hover');
},function(){
$(this).addClass('ui-state-hover');
});
},function(e){
$(this).find('input').attr("checked", false).change();
$(this).one('mouseleave',function(){
$(this).removeClass('ui-state-hover');
});
$(this).hover(function(){
$(this).addClass('ui-state-hover');
},function(){
$(this).removeClass('ui-state-hover');
});
})
if(this.element.find('input').is(':checked')){
this.element.addClass('ui-state-hover');
}
},
destroy: function() {
this.element.removeClass( "ui-checkbutton" );
this.element.button( "destroy" );
},
widget: function(){
return this.element;
}
});
}( jQuery ) );