2009-04-27 21 views
1

Ich begann gerade mit jqModal, wie ich Unterstützung für verschachtelte Modale brauche. Ich bemerke ein unberechenbares Verhalten mit verschachtelten Modalen und Ajax, aber ich weiß nicht genau, wie ich es beheben kann. Was passiert, wenn ich das Hauptmodal lade, das ein verschachteltes Modal enthält, bekomme ich zwei jqmOverlay divs, es ist so, als ob es das Overlay für beide Modale anwendet, obwohl das verschachtelte noch nicht ausgelöst wurde. Wenn ich das Modal schließe, wird immer noch ein Overlay angezeigt. Hier ist der Code:jquery jqModal Ajax und verschachtelte modale Probleme

// 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> 

Es scheint das erste Mal zu arbeiten, aber wenn ich die Haupt-modal zu schließen, öffnen Sie dann wieder ich das Doppel Overlay Problem. Ist das ein Fehler? oder wie ich mein verschachteltes Modal nenne? Außerdem weiß ich, dass es mit dem verschachtelten Modal zu tun hat, denn wenn ich den jqm-Aufruf auf dem verschachtelten Modal lösche, funktioniert das Hauptmodal jedes Mal gut.

+0

Könnte es sein, dass Sie das verschachtelte Modal nicht korrekt schließen? Verwenden Sie eine benutzerdefinierte "Schließen" -Funktion? Das jqmOverlay-Div sollte bei jedem Schließen im DOM zerstört werden. – montrealist

+0

Ich benutze den Standard Cancel brad

+0

Ich denke sowieso, es ist wichtiger herauszufinden, warum zwei Overlays erstellt werden. Ich kann sehen, dass sie beide im Feuerwurm angeheftet sind. Da zwei Overlays eine Deckkraft von 50% haben, kann ich tatsächlich einen Unterschied in der Overlay-Farbe – brad

Antwort

4

Ich hatte ähnliche Probleme mit meinem verschachtelten AJAX jqModals. Hier ist die Lösung: toTop Parameter, kombiniert mit z-Index.

Stellen Sie einen hohen z-index Ihrer verschachtelten modal, und legen Sie dann toTop auf true, wenn die JQM zu schaffen. Zum Beispiel:

// 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> 

Herumspielen mit dem z-index und der toTop Parameter sollte bei der Lösung Ihres Problems zu helfen.

+0

Thx für die Antwort sehen. Ich werde hoffentlich bald damit spielen können, damit ich es akzeptieren kann. – brad

+0

Arbeitete wie ein Zauber, aber ich habe jetzt Probleme, wenn ich beide Modale schließe, öffnet sich der ursprüngliche Modal Link zweimal. Ich werde eine neue Frage hinzufügen, sobald ich damit herumgespielt habe. Entschuldigung für die Annahmeverspätung – brad

+0

Vergesst es, weil ich den gleichen Auslöser wie den ursprünglichen modalen Auslöser verwendet habe. Hinzufügen von Trigger: '.jqNestedModal' zu dem jqm initialize und das Hinzufügen der Klasse .jqNestedModal Link zu allen meinem Ajax verknüpft das Problem behoben. Danke nochmal! – brad