2015-07-01 6 views
5

Quando clicco sulla seconda modale, la prima modale scompare. Tuttavia, voglio tenerlo aperto pure! È un modo per disabilitare questo comportamento?Modale in altri modali su UIkit

Ho anche notato che altri framework come Foundation hanno lo stesso comportamento.

Ecco il mio codice:

<a href="#my-id" data-uk-modal>Open Modal</a> 
<div id="my-id" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <a class="uk-modal-close uk-close"></a> 
     <p>Lorem ipsum...</p> 
     <a href="#my-id2" data-uk-modal>Nested Modal</a> 
    </div> 
</div> 
<div id="my-id2" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <a class="uk-modal-close uk-close"></a> 
     <p>Lorem ipsum...</p> 
    </div> 
</div> 

Vedere le jsfiddle demo.

risposta

1

Si ha che fare alcune modifiche:

Il codice HTML:

<a href="#my-id" data-uk-modal >Open Modal</a> 
<div id="my-id" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <a class="uk-modal-close uk-close"></a> 
     <p>Lorem ipsum...</p> 
     <a href="#my-id2" data-uk-modal>Nested Modal</a> 
    </div> 
</div> 
<div id="my-id2" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <a class="uk-modal-close uk-close"></a> 
     <p>Lorem ipsum...</p> 
    </div> 
</div> 

Il codice jQuery piacerebbe:

$(document).ready(function(){ 

    $.UIkit.modal('#my-id').show(); 
    $.UIkit.modal('#my-id2').show(); 

}); 

questo dovrebbe funzionare

+0

ho provato quello che avete proposto, ma non ha funzionato . Vedi la demo [qui] (https://jsfiddle.net/davis88/6g80c1nf/9/embedded/result/). – gmuser

+0

nah .. se si rimuovono le linee jquery, funzionerà; p –

0

ho postale nuovo codice funziona, quindi per favore prova questo: Funzionerà

<div> 
    <h2>Multiple Modal</h2> 
    <button class="uk-button" data-uk-modal="{target:'#modal1'}">Open Modal 1</button> 

</div> 

<!-- This is the modal 1--> 
<div id="modal1" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <h2>Modal 1</h2> 
     <button class="uk-button" data-uk-modal="{target:'#modal2'}">Open Modal 2</button>  
    </div> 
</div> 


<!-- This is the modal 2--> 
<div id="modal2" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <h2>Modal 2</h2> 
     <a class="uk-modal-close" href="#">Close Modal 2</a> 
    </div> 
</div> 

Questo dovrebbe funzionare ...

+1

Anche in questo caso, questo non funziona perché la prima modale scompare quando si fa clic sulla seconda. – gmuser

2

Da documentazione:

è possibile attivare un nuovo modale all'interno del modal corrente. Il comportamento predefinito chiude la prima modale quando si apre una seconda. È possibile impedire che ciò accada aggiungendo l'attributo data-uk-modal="{target:'#ID',modal:false}".

Quindi qualcosa di simile:

<div> 
    <h2>Multiple Modal</h2> 
    <button class="uk-button" data-uk-modal="{target:'#modal1', modal: false}">Open Modal 1</button> 

</div> 

<!-- This is the modal 1--> 
<div id="modal1" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <h2>Modal 1</h2> 
     <button class="uk-button" data-uk-modal="{target:'#modal2', modal: false}">Open Modal 2</button>  
    </div> 
</div> 


<!-- This is the modal 2--> 
<div id="modal2" class="uk-modal"> 
    <div class="uk-modal-dialog"> 
     <h2>Modal 2</h2> 
     <a class="uk-modal-close" href="#">Close Modal 2</a> 
    </div> 
</div> 

dovrebbe funzionare.

ho farlo funzionare con javascript:

var modal1 = UIkit.modal("#modal1", {center: true, modal: false}), 
    modal2 = UIkit.modal("#modal2", {modal: false}); 
+0

Grazie! Ha funzionato !! –

0

È possibile visualizzare più Modals utilizzando uk-modal="stack: true"

Ecco il codice

<button class="uk-button uk-button-default uk-margin-small-right" type="button" data-uk-toggle="target: #modal-example-1">Open</button> 

<!-- This is the Parent modal --> 
<div id="modal-example-1" uk-modal> 
    <div class="uk-modal-dialog uk-modal-body"> 
     <h2 class="uk-modal-title">Parent Modal</h2> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
     <p class="uk-text-right"> 
      <button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button> 
      <button class="uk-button uk-button-primary" type="button">Save</button> 
     </p> 
     <button class="uk-button uk-button-default uk-margin-small-right" type="button" data-uk-toggle="target: #modal-example-2">Open</button> 
    </div> 
</div> 

<!-- This is the Child modal --> 
<div id="modal-example-2" uk-modal="stack: true"> 
    <div class="uk-modal-dialog uk-modal-body"> 
     <h2 class="uk-modal-title">Child Modal</h2> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
    </div> 
</div> 
Problemi correlati