Если вы хотите знать, почему диалоговое окно закрывается, как только вы щелкаете в любом месте вашего диалога. Вы добавили прослушиватель событий .click()
ко всему документу, каждый раз, когда происходит щелчок, он запускает функцию обратного вызова overlayclickclose()
.
Это проверяет, хотите ли вы закрыть диалоговое окно:
if (closedialog)
Поскольку closedialog
всегда 1
, что в качестве логического значения равно true любой щелчок в любом месте закроет диалоговое окно. Ваша функция в основном скажет if (true)
что-то сделать, поэтому всегда будет «делать что-то».
Если вы измените фокусное событие на:
closedialog = 0;
Диалоговое окно закрытия теперь 0
, которое в качестве логического значения равно flase , поэтому диалог не закрывается.
Посмотрите, как это работает здесь
Смотрите, это не работает, как у вас здесь
После быстрого поиска похоже, что используемый вами код очень похож на в этом руководстве - смотрите 1
и 0
для closedialog
переменная.
Есть еще один способ сделать это, вероятно, легче следовать в коде. Смотрите вопрос здесь . Вы можете изменить свой код на что-то вроде этого:
$('#mydialog').dialog({
bgiframe: true,
autoOpen: true,
modal: true,
width: 300,
height: 200,
resizable: false
});
$('.ui-widget-overlay').live('click', function() {
$('#mydialog').dialog('close');
});
Посмотрите, как это работает здесь