2009-04-27 3 views
1

Я только начал использовать jqModal, поскольку мне нужна поддержка для вложенных модалов. Я замечаю какое-то неустойчивое поведение с вложенными модалами и ajax, но я точно не знаю, как это исправить. Что происходит, когда я загружаю основной модальный, который имеет вложенный в него модальный элемент, я получаю два div div jqmOverlay, это похоже на то, что он применяет наложение для обоих модалов, хотя вложенные еще не были запущены. Поэтому, когда я закрываю модальный, на дисплее отображается еще один оверлей. Вот код:jquery jqModal Ajax и вложенные модальные проблемы

// Main Modal 
$(function(){ 
$("#modal").jqm({ajax:'@href'}); 
}) 
<a class="label jqModal" href="/suppliers/2/edit">View Supplier</a> 


// Nested Modal code fragment within the /suppliers/2/edit html 
$(function(){ 
$("#nested_modal").jqm({ajax:'@href', zIndex:3001}); 
}) 
<a class="button jqModal" href="/suppliers/6/bills/new">Add Bill</a> 

Это похоже на работу в первый раз, но если я закрываю основные модальный, а затем открыть снова я получаю проблему двойного наложения. Это ошибка? или способ, которым я называю свой вложенный модальный? Кроме того, я знаю, что это связано с вложенным модальным, потому что когда я удаляю вызов jqm на вложенный модальный, основной модально работает отлично каждый раз.

+0

Возможно, вы не закрываете вложенный модальный код правильно? Вы используете пользовательскую функцию «закрыть»? Разделение jqmOverlay должно быть уничтожено в DOM каждый раз, когда вы закрываете. – montrealist

+0

Я использую стандарт Cancel brad

+0

Я думаю, что в любом случае более важно выяснить, почему создаются два оверлея. Я вижу, что они оба добавлены в firebug. Кроме того, поскольку два наложения имеют непрозрачность 50%, я могу увидеть разницу в наложении bg color – brad

ответ

4

У меня были подобные проблемы с моими вложенными jQModals AJAX. Вот решение: параметр toTop, в сочетании с z-index.

Установите высокий Z-индекс ваших вложенной модальным, а затем установить Totop истину при создании JQM. Например:

// Nested: 
<div id="test" style="z-index: 5000;">Test content</div> 
... 
<script type="text/javascript"> 
$.ready(function(){ 
    $('#test').jqm({ 
    toTop:     true, 
    modal:     true, 
    overlay:    10, 
    }); 
}); 
</script> 

Мессинг вокруг с г-индексом и Totop параметром должно помочь в решении вашей проблемы.

+0

Thx для ответа. Надеюсь, у меня будет шанс поиграть с этим скоро, чтобы я мог это принять. – brad

+0

Работал как шарм, но у меня, похоже, возникают проблемы, когда я закрываю оба модала, начальная модальная ссылка открывается дважды. Я добавлю новый вопрос, как только я больше поиграю с ним. Извините за задержку при принятии – brad

+0

Nevermind, потому что я использовал тот же триггер, что и оригинальный модальный триггер. добавление триггера: «.jqNestedModal» к инициализации jqm и добавление ссылки .jqNestedModal класса ко всем связанным с ajax связанному исправлению проблемы. Thx снова! – brad

Смежные вопросы