Use pushStack in widget method. Fixes #5732 - make the widget method maintain the stack

This commit is contained in:
jzaefferer 2010-07-30 14:26:58 +02:00
parent b3940d2f78
commit ea58cd5ac0
8 changed files with 39 additions and 8 deletions

View File

@ -38,6 +38,14 @@ test("search", function() {
same( $(".ui-menu .ui-menu-item").length, 2, "only java and javascript for 'ja'" ); same( $(".ui-menu .ui-menu-item").length, 2, "only java and javascript for 'ja'" );
$("#autocomplete").autocomplete("destroy"); $("#autocomplete").autocomplete("destroy");
}) });
test("widget", function() {
var ac = $("#autocomplete").autocomplete({
source: data
});
same(ac.autocomplete("widget")[0], $(":ui-menu")[0]);
same(ac.autocomplete("widget").end()[0], ac[0]);
});
})(jQuery); })(jQuery);

View File

@ -16,4 +16,18 @@ test("destroy", function() {
equal( afterHtml, beforeHtml ); equal( afterHtml, beforeHtml );
}); });
test("widget", function() {
var submit = $("#submit").button();
same(submit.button("widget")[0], submit[0]);
same(submit.button("widget").end()[0], submit[0]);
var check = $("#check").button();
same(check.button("widget")[0], check.next("label")[0]);
same(check.button("widget").end()[0], check[0]);
var radio = $("#radio01").button();
same(radio.button("widget")[0], radio.next("label")[0]);
same(radio.button("widget").end()[0], radio[0]);
});
})(jQuery); })(jQuery);

View File

@ -130,4 +130,10 @@ test("open", function() {
ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog visible after open method called'); ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog visible after open method called');
}); });
test("widget", function() {
var dialog = $('<div></div>').dialog();
same(dialog.dialog("widget")[0], dialog.parent()[0]);
same(dialog.dialog("widget").end()[0], dialog[0]);
});
})(jQuery); })(jQuery);

View File

@ -151,7 +151,8 @@ test(".widget() - base", function() {
_create: function() {} _create: function() {}
}); });
var div = $("<div></div>").testWidget() var div = $("<div></div>").testWidget()
same(div[0], div.testWidget("widget")[0]); same(div.testWidget("widget")[0], div[0]);
same(div.testWidget("widget").end()[0], div[0]);
}); });
test(".widget() - overriden", function() { test(".widget() - overriden", function() {
@ -159,10 +160,12 @@ test(".widget() - overriden", function() {
$.widget("ui.testWidget", { $.widget("ui.testWidget", {
_create: function() {}, _create: function() {},
widget: function() { widget: function() {
return wrapper; return this.element.pushStack(wrapper.get());
} }
}); });
same(wrapper[0], $("<div></div>").testWidget().testWidget("widget")[0]); var div = $("<div></div>").testWidget();
same(div.testWidget("widget")[0], wrapper[0]);
same(div.testWidget("widget").end()[0], div[0]);
}); });
})(jQuery); })(jQuery);

View File

@ -311,7 +311,7 @@ $.widget( "ui.autocomplete", {
}, },
widget: function() { widget: function() {
return this.menu.element; return this.element.pushStack(this.menu.element.get());
} }
}); });

View File

@ -210,7 +210,7 @@ $.widget( "ui.button", {
}, },
widget: function() { widget: function() {
return this.buttonElement; return this.element.pushStack(this.buttonElement.get());
}, },
destroy: function() { destroy: function() {

View File

@ -207,7 +207,7 @@ $.widget("ui.dialog", {
}, },
widget: function() { widget: function() {
return this.uiDialog; return this.element.pushStack(this.uiDialog.get());
}, },
close: function(event) { close: function(event) {

View File

@ -160,7 +160,7 @@ $.Widget.prototype = {
}, },
widget: function() { widget: function() {
return this.element; return this.element.pushStack(this.element.get());
}, },
option: function( key, value ) { option: function( key, value ) {