2017-05-23 2 views
0

ich habe folgendesÖffnen Div auf klicken dann lassen Sie es öffnen, wenn wieder geklickt

$(document).ready(
    function() { 
     $("#click").click(function() { 
      $("#top").toggle(); 
     }); 
    }); 


<div id="click"><img src="/files/images/x.jpg" alt="x"/>Click to open</div> 
    <div id="top"Some information></div> 

Was ich will, ist die div offen zu bleiben, wenn darauf geklickt oder die Seite wieder neu geladen wird. Gibt es eine Möglichkeit, dies zu tun?

+0

Soll das div nicht ausgeblendet werden, wenn erneut darauf geklickt wird? –

+5

* Was ich will, ist das Div zu öffnen, wenn geklickt wird * Also nicht 'toggle' verwenden. Zeigen Sie einfach Ihre Div. –

+0

Ich verstehe diesen Teil * 'Was ich will, ist das Div zu bleiben geöffnet, wenn angeklickt wird * * aber nicht dieser Teil *' oder die Seite wird erneut geladen *. Meintest du, dass dein Zustand nach dem Öffnen deines div persistent offen bleibt, selbst wenn die Seite neu geladen wird? – meteorzeroo

Antwort

1
<script> 
$(document).ready(
    function() { 
     $("#click").click(function() { 
      $("#top").show(); 
     }); 
    }); 
</script> 

<div id="click"><img src="/files/images/x.jpg" alt="x"/>Click to open</div> 
<div id="top" style="display: none;"> Some information</div> 

diese Weise wird der Top-Div offen, auch geblieben, wenn Sie zweimal auf #click klicken oder mehr als einmal.

+0

Vielen Dank nur was ich wollte – Ria

0

Anstatt toggle-Funktion aufzurufen, fügen Sie dem div eine Klasse hinzu (zB geöffnet). Mit CSS Anzeige hinzufügen: keine; zum div und display: block; zu der geöffneten Klasse.

<script> 
$(document).ready(
    function() { 
     $("#click").click(function() { 
      $("#top").addClass('opened'); 
     }); 
    }); 
</script> 
<style> 
#top { display: none; } 
#top.opened { display: block; } 
</style> 

<div id="click"><img src="/files/images/x.jpg" alt="x"/>Click to open</div> 
<div id="top"> Some information</div> 
0

Mit toogle schließen Sie es den zweiten Klick. Die öffnen die dritte und so weiter. Ändern Sie es einfach in show().

$("#top").show(); 

über hält es geöffnet wird, wenn Sie die Seite aktualisieren Sie lokale Speicherung oder Cookies oder was auch immer Client-Seite verwenden können, aber es wird nur im aktuellen Browser gehalten werden. Andernfalls müssen Sie den Status über eine AJAX-Anfrage an den Server speichern und den Wert zurückbekommen.

1

Nach Ihrer Anforderung, ich denke, Sie müssen den Cookie verwenden. Setzen Sie den Cookie mit dem Flag, wenn das Popup beim Klick-Event-Trigger geöffnet oder geschlossen wird, und bei DOM-Ready-Event-Check, ob für die Variable, ob der Wert sich geöffnet hat, die Popup-Open-Aktion auslöst oder sie geschlossen bleibt.

Verwandte Themen