JQuery 1.4.2 - диалоговое окно JQuery UI, закрывается при внешнем щелчке (не модально) - PullRequest
1 голос
/ 29 ноября 2011

Использование диалогового окна.JQuery 1.4.2

У меня есть код, чтобы закрыть диалоговое окно, когда щелкнул снаружи.Это не работает для меня.Тем не менее, если я до версии на локальной разработке, она работает нормально.Проблема в том, что я не могу открыть версию jquery для этой части сайта.

Мысли о том, как добиться щелчка за пределами немодального диалога, чтобы закрыть?

// Close Pop-in If the user clicks anywhere else on the page
             jQuery('body')
              .bind(
               'click',
               function(e){
            if(
             jQuery('.detailsPopup').dialog('isOpen')
             && !jQuery(e.target).is('.ui-dialog, a')
             && !jQuery(e.target).closest('.ui-dialog').length
            ){
             jQuery('.detailsPopup').dialog('close');
            }
               }
              );

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Вы можете попробовать это:

http://jsfiddle.net/GKfZM/117/

Это работает 1.4.4, но попробуйте.Работает для autoOpen true или false.

$('#open').click(function() {
    $('#your-dialog-id').dialog('open');
    closedialog = 0;
});

var closedialog;

function overlayclickclose() {
    if (closedialog) {
        $('#your-dialog-id').dialog('close');
    }
    //set to one because click on dialog (focus) box sets to zero 
    closedialog = 1;
}

$('#your-dialog-id').dialog({
    autoOpen: false,
    open: function() {
        closedialog = 1;
        $(document).bind('click', overlayclickclose);
    },
    focus: function() {
        closedialog = 0;
    },
    close: function() {
        $(document).unbind('click');
    },
    buttons: {
        Submit: function() {
        $(this).dialog('close');
    }
  }
});
0 голосов
/ 18 апреля 2012
$(document).click(function(e) {
    if (e.target.classList.contains('ui-widget-overlay'))
     {
        $( "#yourDialogId" ).dialog("close");
     }
});
...