закрыть простой модальный OSX при нажатии вне всплывающего окна

Я использую simplemodal OSX в проекте и хочу, чтобы модальное всплывающее окно закрывалось, когда пользователь щелкает за пределами всплывающего окна. Я использую следующий код, где я установил для overlayClose значение true, но это не работает. Он отлично работает с кнопкой X, но не при нажатии снаружи;

    $("#osx-modal-content").modal({
                autoPosition: true,
                autoResize: false,
                overlayId: 'osx-overlay',
                containerId: 'simplemodal-container',
                closeHTML: null,
                closeByEscape: true,
                setEvent: 'click',
                closeByDocument: true,
                overlayClass: '',
                minHeight: 80,
                opacity: 65, 
                position: ['72px',],
                overlayClose: true,
                onOpen: OSX.open,
                onClose:OSX.close

            });

обновлено: добавлен HTML

<!-- modal content -->
<div id="osx-modal-content">

    <div id="osx-modal-data">

        <div id="simplemodal-container" class="simplemodal-container">
            <div id="modal-placeholder" class="simplemodal-data" style="display: block;">


            </div>

        </div>

    </div>
</div>

person devC    schedule 27.06.2013    source источник


Ответы (1)


Вы можете попробовать это, на click на document (безопасный метод для IE), вызовите функцию $.modal.close():

$(document).on('click', function(){
   if($('#osx-modal-content').is(':visible')){
     $.modal.close()
   }
});
person Mark    schedule 27.06.2013
comment
привет, спасибо, это скрывает модальное окно, но оно не закрывается, фоновая страница по-прежнему отображается серым цветом - person devC; 03.07.2013
comment
обновил мой ответ, можешь попробовать. я думаю, вы должны вызвать функцию закрытия - person Mark; 03.07.2013
comment
на самом деле, это имеет небольшую проблему. так как это выполняется на document.on(click), даже когда я нажимаю внутри модального всплывающего окна, оно закрывается. Есть ли обходной путь для этого? - person devC; 04.07.2013
comment
вы можете использовать overlayId= 'osx-overlay', поэтому вместо $(document) используйте $('#osx-overlay') - person Mark; 04.07.2013