Sto tentando di ignorare il comportamento predefinito di una finestra di dialogo modale dell'interfaccia utente jQuery per chiudere la finestra quando si fa clic sull'overlay. Il codice che ho qui sotto chiuderà la finestra di dialogo dopo averlo aperto per la prima volta e fare clic sull'overlay. Quando apro di nuovo la finestra di dialogo, fare clic sulla sovrapposizione non fa nulla. Mi manca un evento qui. Qualcuno può far notare cosa sto facendo male qui?jQuery UI 1.7.1 Modal Close su overlay Fare clic su
Grazie!
$(function(){
$('#production_schedule_dialog').dialog({
autoOpen: false,
width: 570,
modal: true,
closeOnEscape: true
});
$('#production_schedule_dialog_link').click(function(){
$('#production_schedule_dialog').dialog('open');
return false;
});
$(document).bind('click', dialogBlur);
});
var dialogBlur = function(event){
var target = $(event.target);
if (target.is('.ui-dialog') || target.parents('.ui-dialog').length) {
return;
}
$('.ui-dialog:visible').find('.ui-dialog-titlebar-close').trigger('click');
$(document).unbind('click', dialogBlur);
}
ho provato come 5 modi diversi questo è l'unico Sono stato in grado di lavorare (e il più pulito) attraverso l'evento "open" integrato nella finestra di dialogo. Ho definito una variabile defaultDialogOptions con $ (". Ui-widget-overlay"). Bind ("click", closeDialogWindowOnOverlayClick); all'interno del callback dell'evento "open" e derivano tutte le finestre di dialogo del mio sito da questa impostazione aka $ ('
') .dialog ($. extend ({}, defualtSettings, {/ * impostazioni specifiche * /})); Funziona magnificamente. Grazie! – parliament