Skip to content

Commit

Permalink
Dialog: Added additional syntax for creating buttons. Fixes #4344 - D…
Browse files Browse the repository at this point in the history
…ialog: Enhanced Button Option.
  • Loading branch information
scottgonzalez committed Aug 31, 2010
1 parent dea2f8a commit 95a3459
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 4 deletions.
25 changes: 25 additions & 0 deletions tests/unit/dialog/dialog_options.js
Expand Up @@ -71,6 +71,31 @@ test("buttons", function() {
el.remove();
});

test("buttons - advanced", function() {
expect(5);

el = $("<div></div>").dialog({
buttons: [
{
text: "a button",
"class": "additional-class",
id: "my-button-id",
click: function() {
equals(this, el[0], "correct context");
}
}
]
});
var buttons = dlg().find("button");
equals(buttons.length, 1, "correct number of buttons");
equals(buttons.attr("id"), "my-button-id", "correct id");
equals(buttons.text(), "a button", "correct label");
ok(buttons.hasClass("additional-class"), "additional classes added");
buttons.click();

el.remove();
});

test("closeOnEscape", function() {
el = $('<div></div>').dialog({ closeOnEscape: false });
ok(true, 'closeOnEscape: false');
Expand Down
13 changes: 9 additions & 4 deletions ui/jquery.ui.dialog.js
Expand Up @@ -357,10 +357,15 @@ $.widget("ui.dialog", {
});
}
if (hasButtons) {
$.each(buttons, function(name, fn) {
var button = $('<button type="button"></button>')
.text(name)
.click(function() { fn.apply(self.element[0], arguments); })
$.each(buttons, function(name, props) {
props = $.isFunction( props ) ?
{ click: props, text: name } :
props;
var button = $('<button></button>', props)
.unbind('click')
.click(function() {
props.click.apply(self.element[0], arguments);
})
.appendTo(uiButtonSet);
if ($.fn.button) {
button.button();
Expand Down

0 comments on commit 95a3459

Please sign in to comment.