2017-03-09 2 views
-1

Ich versuche zu verstecken oder entfernen Sie einige HTML-Element, wenn Benutzer auf das Dropdown-Menü geklickt wird.Javascript jquery keep verstecken/entfernen, auch nach der Seite aktualisiert

Was ich schon versucht:

$("#notif").click(function(){ 
$("#count").remove(); 
}); 

Aber das Problem ist, wenn der Benutzer die Seite aktualisieren, das #count Element ist wieder zeigen. Wie versteckt man die # count, wenn der Benutzer angemeldet ist, auch wenn die Seite aktualisiert wird, und zeigen Sie es erneut, wenn Benutzer sich neu anmelden Ich weiß nicht viel über Javascript.

Kann ich dies in Javascript/Jquery tun? oder sollte ich den Wert auf PHP-Sitzung oder etwas ?.

+2

[Use lokalen Speicher] (http://stackoverflow.com/a/12063002/4248328) –

+0

Verwenden 'localStorage' – Bharat

+1

wie kommentiert oben Sie local oder Cookies für diesen Zweck verwenden können. – user7417866

Antwort

0

Ich bin mit jQuery-Plugin (jQuery-Cookies) für diese, können Sie das gleiche von https://github.com/js-cookie/js-cookie

Zuerst sollten Sie alle Cookies gesetzt, wenn Benutzer auf die Schaltfläche in

klicken
$("#notif").click(function() { 
    Cookies.set('RemoveCount', 'true'); 

    $("#count").hide(); 
}); 

Dann auf Pageload können Sie dies für Ihre Zwecke überprüfen

$(function() { 
    if (Cookies.get('RemoveCount') == 'true' && Cookies.get('RemoveCount') != 'undefined') { 
     $("#count").hide(); 
    } else { 
     $("#count").show(); 
    } 
} 

<html> 
<head> 
<script 
    src="https://code.jquery.com/jquery-3.1.1.min.js" 
    integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
    crossorigin="anonymous"></script> 
<script src="../js.cookie.js"></script> 
</head> 
<body> 
    <button id='clckced'> removeCount</button> 
    <div id="RemoveCount"> 
    This should be removed. 
    </div> 
    <script> 
     $(function(){ 
      if (Cookies.get('RemoveCount') == 'true' && Cookies.get('RemoveCount') != 'undefined'){ 
       $("#RemoveCount").hide(); 
       } else { 
        $("#RemoveCount").show(); 
       } 
      $('#clckced').click(function(){ 
       Cookies.set('RemoveCount', 'true'); 
       $("#RemoveCount").hide(); 
      }) 
     }); 
    </script> 

</body> 
</html> 

nur von Cookies entfernen, wenn der Benutzer abgemeldet ...

Cookies.remove('RemoveCount'); 
+0

ich kann dies nicht mit Laravel – Raphael

+0

integrieren, es ist okay, es hat jetzt funktioniert. danke – Raphael

+0

sollte es kein Problem mit Laravel geben, da Sie nur mit JS und jQuery spielen müssen. – user7417866

0

ist es so einfach.

$(document).ready(function(){ 
    var x=$("#notif option:selected").val(); 
    if(x=="" || x==0){$("#count").remove();} 
}); 

Platzieren Sie den obigen Code in Javascript-Datei oder in Skript-Tag.

+0

Wie Sie dies auf Seite aktualisieren werden? – user7417866

0
<?php 
if(!isset($_SESSION["session_name"])) 
{ 
$_SESSION["session_name"]=''; 
} 
?> 
<script> 
var session=<?php echo $_SESSION["session_name"]; ?>; 
if(session!='') 
{ 
$("#count").hide(); 
} 
</script> 
0
//one option 
$(document).ready(function(){ 
    $("#count").hide(); 
}); 
//second option 
$(document).ready(function(){ 
    $("#count").remove(); 
}); 
//third option 
$(document).ready(function(){ 
    $("#count").css("display","none"); 
}); 
+0

Dies wird immer die Zählung verbergen, unabhängig von Ihrem Klick auf Verbergen oder nicht – user7417866

+0

Sie können Benutzeraktion in der Datenbank speichern und beim Laden oder Aktualisieren geben Sie CSS als Aktion in db –

+0

speichern, aber wo Sie es in Ihre Lösung? – user7417866

0

ähnlich habe ich versucht, wie diese

$("#notif").click(function(){ 
$("#count").remove(); 
}); 

ich habe Sitzungsspeicher verwenden, wird gespeichert in Kundenobjektträger

c Heck Link:

http://jsfiddle.net/h4JXs/5300/

-1

Sie können auch session (oder local) den Klick zu erinnern.

Jedes Mal, wenn die Seite geladen wird, überprüfen Sie zuerst den Speicher, um zu überprüfen, ob der Benutzer geklickt hat. Wenn dies der Fall ist, wird #count entfernt.

Wenn der Benutzer auf #notif klickt, entfernen Sie das Element #count und speichern Sie die Informationen im Speicher, damit sie beim nächsten Laden der Seite wieder entfernt werden können.

sessionStorage speichert die Informationen lokal, während das Browserfenster oder die Registerkarte geöffnet ist. localStorage speichert es dauerhaft, bis es explizit gelöscht wird.

In dieser Frage, die Sie eine nette Diskussion über die Unterschiede zwischen local haben, session, Cookies und Session: What is the difference between localStorage, sessionStorage, session and cookies?

In Ihrem Fall, ich denke, die am besten geeignete Lösung ist session (oder local je nachdem, wie hartnäckig Sie wollen die Informationen), da diese Informationen nicht an den Server gesendet werden müssen.

<html> 
    <head> 
    <script 
     src="https://code.jquery.com/jquery-3.1.1.min.js" 
     integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
     crossorigin="anonymous"></script> 
    </head> 
    <body> 
    <button id='notif'> removeCount</button> 
    <div id="count"> 
     This should be removed. 
    </div> 
    <script> 
     window.onload = function() { 
     if (window.sessionStorage && window.sessionStorage.getItem('removeCount') == 'true') { 
      $("#count").remove(); 
     } 

     $('#notif').click(function() { 
      if (window.sessionStorage) { 
      window.sessionStorage.setItem('removeCount', 'true'); 
      $("#count").remove(); 
      } 
     }); 
     } 
    </script> 

    </body> 
</html> 
+0

bist du wirklich dumm oder versucht zu sein .. Cookies in lokalen Rechner gespeichert nur, wenn es explizit für die Server-Nutzung integriert ist .. nur durch das Lesen der Antwort von Frage muss nicht bedeuten, dass Es wird für alle Fälle gelten ... – user7417866

+0

Cookies werden lokal (im Client) gespeichert. Sie werden jedoch für jede Anfrage zwischen dem Server und dem Client übertragen (siehe zB [https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie](https://developer.mozilla .org/de-DE/docs/Web/API/Dokument/cookie)), was ich wieder sagen wollte – airos

+0

, wenn vom Server angefordert, wenn nicht, werden sie nicht – user7417866

Verwandte Themen