2013-05-21 2 views
0

Я хотел бы закрыть запрос ui modalbox, когда пользователь нажимает на остальную часть страницы, которая находится в фоновом режиме.Close modalbox on click

Я добавил этот фрагмент кода, чтобы сделать это, но он не работает:

$('.ui-widget-overlay').on("click", function() { 
    //Close the dialog 
    $(this).find(".dialog").dialog("close"); 
}); 

Example

+0

пожалуйста, добавьте код страницы, почему вы используете (это) в запрос? –

+1

@DoryZidon Просто любопытно, но что не так с использованием (this) в запросе? Я использовал его раньше. Однако, если это вызывает отрицательную производительность, о которой я не подозреваю, я могу перегруппироваться, когда и как часто я использую (это) в своем собственном коде ... – War10ck

+0

это js имеет много смысла .. может быть сложно, но я предполагаю, что jQuery дает вам элемент, на который вы нажимаете, но я бы тестировал его раньше ... например, alert this.tagName, чтобы увидеть, что происходит .. –

ответ

1
$('body').on('click','.ui-widget-overlay', function() { 
    $('.ui-dialog').filter(function() { 
    return $(this).css("display") === "block"; 
    }).find('.ui-dialog-content').dialog('close'); 
}); 

DEMO

Это работает ... Найдено here