Я использую диалог jquery, чтобы открыть экран, когда кнопки нажимаются на боковой панели. Обычно при нажатии кнопки запускаются следующие коды:
resizeDialog();
$("#dashboardContainer").dialog("open");
function resizeDialog() {
var relativeDiv, relativeHeight, relativeWidth, relativeMy;
if(myData.opening_type == 'full') {
relativeDiv = '#sContainer';
relativeWidth = '328';
relativeMy = 'left top';
} else {
relativeDiv = '#cContainer';
relativeMy = 'right top';
var mqDesktop2 = window.matchMedia( "(min-width : 1500px) and (max-width : 1750px)" );
var mqMobile = window.matchMedia( "(min-width:700px) and (max-width: 1500px)" );
if(mqMobile.matches) {
relativeWidth = '648';
} else if(mqDesktop2.matches) {
relativeWidth = '968';
} else {
relativeWidth = '1320';
};
}
relativeHeight = $(window).height() - ($("#cContainer").offset().top) - 20;
$("#myDialog")
.dialog( "option", "height", relativeHeight)
.dialog( "option", "width", relativeWidth)
.dialog( "option", "position", { my: relativeMy, at: "right top", of: relativeDiv, } );
}
Но, когда я часто (один за другим) нажимаю на кнопки, открывается диалоговое окно с прежним размером. Когда я добавляю таймаут перед открытием диалога, он запускается. Но я не хочу добавлять тайм-аут, потому что диалог должен быть открыт немедленно. Есть ли другие решения, которые вы можете предложить?