Я предполагаю, что вы используете диалоговый виджет jQuery UI. Если это так, то вы можете настроить таргетинг на элемент через CSS (что будет лучше для производительности, чем в JavaScript):
.ui-dialog {
width : 500px;
height : 150px;
}
Если у вас несколько диалогов, вам нужно сделать CSS-селектор выше немного более уникальным:
#root-element .ui-dialog {
width : 500px;
height : 150px;
}
Кроме того, эта строка должна выдавать ошибку:
.attr("id", $(this)
И должно быть изменено на что-то вроде этого:
.attr("id", $(this).attr('id') + '_dialog')
, который даст диалогу идентификатор, совпадающий с кнопкой, нажатой для создания его с добавлением _dialog
в конце.
UPDATE
Если вы хотите сделать это с помощью JavaScript (скажем, после нажатия на ссылку), тогда вы можете использовать функцию .css()
jQuery, чтобы при необходимости изменить размеры элемента:
$('#some-link').bind('click', function () {
$('.ui-dialog').css({
width : 500px,
height : 150px
});
});
Если вы не знаете, какие значения высоты / ширины следует использовать, вы можете проверить значения содержимого диалога:
$('#some-link').bind('click', function () {
var $dialog = $('.ui-dialog');
$dialog.append('<div class="audio" style="width:123px; height: 321px;"></div>');
$dialog.css({
width : $dialog.children('.audio').width(),//note that pixels will be assumed so it is not necessary to specify `px`
height : $dialog.children('.audio').height()
});
});