Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Диалоговое окно плагина jq UI (https://javascript.ru/forum/jquery/67158-dialogovoe-okno-plagina-jq-ui.html)

Aqua77 31.01.2017 21:32

Диалоговое окно плагина jq UI
 
Как заставить диалоговое окно закрыться при щелчке по любому месту за пределами окна?


$('.dial').dialog({
    autoOpen:false; //Изначально закрыто
});

$('img').click(function(){
  $('.dial').dialog("open"); //По щелчку по картинки открывается  
});

$(document).click(function(){
  $('.dial').dialog('close'); //По щелчку на любом месте закрывается
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
 <div title="Окно" class="dial">
132
 </div>

TestUser013 31.01.2017 21:45

Надо в функции прицепленной на $(document).click чекать родителей (closest). Если родитель ваше окно, то ничего не делать.

рони 31.01.2017 21:46

Aqua77,
$(document).click(function(event){
  if($(event.target).closest("img, .dial").length) return;
  $('.dial').dialog('close');
});

Aqua77 31.01.2017 22:02

Да именно так, спасибо! как оценить ответ?


Часовой пояс GMT +3, время: 09:03.