Dialog: Don't use .attr( props, true ) for creating buttons since that API doesn't exist in jQueery 1.3.2. Fixes #7226 - Dialog buttons badly handled with JQuery 1.3.2.

This commit is contained in:
Scott González 2011-04-07 14:06:36 -04:00
parent c205fbc4cc
commit e388153049

View File

@ -37,6 +37,18 @@ var uiDialogClasses =
maxWidth: true, maxWidth: true,
minHeight: true, minHeight: true,
minWidth: true minWidth: true
},
// support for jQuery 1.3.2 - handle common attrFn methods for dialog
attrFn = $.attrFn || {
val: true,
css: true,
html: true,
text: true,
data: true,
width: true,
height: true,
offset: true,
click: true
}; };
$.widget("ui.dialog", { $.widget("ui.dialog", {
@ -376,12 +388,21 @@ $.widget("ui.dialog", {
{ click: props, text: name } : { click: props, text: name } :
props; props;
var button = $('<button type="button"></button>') var button = $('<button type="button"></button>')
.attr( props, true )
.unbind('click')
.click(function() { .click(function() {
props.click.apply(self.element[0], arguments); props.click.apply(self.element[0], arguments);
}) })
.appendTo(uiButtonSet); .appendTo(uiButtonSet);
// can't use .attr( props, true ) with jQuery 1.3.2.
$.each( props, function( key, value ) {
if ( key === "click" ) {
return;
}
if ( key in attrFn ) {
button[ key ]( value );
} else {
button.attr( key, value );
}
});
if ($.fn.button) { if ($.fn.button) {
button.button(); button.button();
} }