Skip to content

Commit ea58cd5

Browse files
committed
Use pushStack in widget method. Fixes #5732 - make the widget method maintain the stack
1 parent b3940d2 commit ea58cd5

File tree

8 files changed

+39
-8
lines changed

8 files changed

+39
-8
lines changed

tests/unit/autocomplete/autocomplete_methods.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ test("search", function() {
3838
same( $(".ui-menu .ui-menu-item").length, 2, "only java and javascript for 'ja'" );
3939

4040
$("#autocomplete").autocomplete("destroy");
41-
})
41+
});
42+
43+
test("widget", function() {
44+
var ac = $("#autocomplete").autocomplete({
45+
source: data
46+
});
47+
same(ac.autocomplete("widget")[0], $(":ui-menu")[0]);
48+
same(ac.autocomplete("widget").end()[0], ac[0]);
49+
});
4250

4351
})(jQuery);

tests/unit/button/button_methods.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,18 @@ test("destroy", function() {
1616
equal( afterHtml, beforeHtml );
1717
});
1818

19+
test("widget", function() {
20+
var submit = $("#submit").button();
21+
same(submit.button("widget")[0], submit[0]);
22+
same(submit.button("widget").end()[0], submit[0]);
23+
24+
var check = $("#check").button();
25+
same(check.button("widget")[0], check.next("label")[0]);
26+
same(check.button("widget").end()[0], check[0]);
27+
28+
var radio = $("#radio01").button();
29+
same(radio.button("widget")[0], radio.next("label")[0]);
30+
same(radio.button("widget").end()[0], radio[0]);
31+
});
32+
1933
})(jQuery);

tests/unit/dialog/dialog_methods.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,10 @@ test("open", function() {
130130
ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog visible after open method called');
131131
});
132132

133+
test("widget", function() {
134+
var dialog = $('<div></div>').dialog();
135+
same(dialog.dialog("widget")[0], dialog.parent()[0]);
136+
same(dialog.dialog("widget").end()[0], dialog[0]);
137+
});
138+
133139
})(jQuery);

tests/unit/widget/widget_core.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,18 +151,21 @@ test(".widget() - base", function() {
151151
_create: function() {}
152152
});
153153
var div = $("<div></div>").testWidget()
154-
same(div[0], div.testWidget("widget")[0]);
154+
same(div.testWidget("widget")[0], div[0]);
155+
same(div.testWidget("widget").end()[0], div[0]);
155156
});
156157

157158
test(".widget() - overriden", function() {
158159
var wrapper = $("<div></div>");
159160
$.widget("ui.testWidget", {
160161
_create: function() {},
161162
widget: function() {
162-
return wrapper;
163+
return this.element.pushStack(wrapper.get());
163164
}
164165
});
165-
same(wrapper[0], $("<div></div>").testWidget().testWidget("widget")[0]);
166+
var div = $("<div></div>").testWidget();
167+
same(div.testWidget("widget")[0], wrapper[0]);
168+
same(div.testWidget("widget").end()[0], div[0]);
166169
});
167170

168171
})(jQuery);

ui/jquery.ui.autocomplete.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ $.widget( "ui.autocomplete", {
311311
},
312312

313313
widget: function() {
314-
return this.menu.element;
314+
return this.element.pushStack(this.menu.element.get());
315315
}
316316
});
317317

ui/jquery.ui.button.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ $.widget( "ui.button", {
210210
},
211211

212212
widget: function() {
213-
return this.buttonElement;
213+
return this.element.pushStack(this.buttonElement.get());
214214
},
215215

216216
destroy: function() {

ui/jquery.ui.dialog.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ $.widget("ui.dialog", {
207207
},
208208

209209
widget: function() {
210-
return this.uiDialog;
210+
return this.element.pushStack(this.uiDialog.get());
211211
},
212212

213213
close: function(event) {

ui/jquery.ui.widget.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ $.Widget.prototype = {
160160
},
161161

162162
widget: function() {
163-
return this.element;
163+
return this.element.pushStack(this.element.get());
164164
},
165165

166166
option: function( key, value ) {

0 commit comments

Comments
 (0)