jquery jquery sahifani yangilashdan keyin ham yashirish/olib tashlash

Foydalanuvchini ochiladigan menyuga bosganda ba'zi HTML elementini yashirish yoki o'chirishga harakat qilaman.

Men allaqachon sinab ko'rdim:

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

Biroq, foydalanuvchi bu sahifani yangilaganida, #count element yana ko'rsatiladi. Agar foydalanuvchi hatto sahifaga kirganida #countni yashirishni davom ettirish va foydalanuvchini qayta kiritganda uni yana ko'rsatish javascript haqida ko'p narsa bilmayman.

Buni javascript/jquery-da qilsam bo'ladimi? yoki qiymati PHP sessiyasida yoki biror narsada saqlashim kerakmi ?.

1
Yoki doimiy echim uchun ma'lumotlar bazasidan foydalaning
qo'shib qo'ydi muallif Web Dev Guy, manba
qo'shib qo'ydi muallif Alive to Die, manba
localStorage dan foydalaning
qo'shib qo'ydi muallif Bharat, manba
@Raphael sizning muammoni hal qilish uchun vaqt ketgandan so'ng o'zingizdan olgan javobingizni o'zgartirish uchun yaxshi va adolatsiz emas. Bu shikoyat bilan belgilanadi va foydalanuvchilar bu erda taniqli va obro'ga erishish uchun harakat qilishadi.
qo'shib qo'ydi muallif user7417866, manba
Mening kodim to'liq ishlaydigan quyida ko'ring va sizning maqsadingizga xizmat qiladi. foydalanuvchi tizimdan chiqqandan keyin cookie-fayllarni o'chirishingiz kerak bo'ladi.
qo'shib qo'ydi muallif user7417866, manba
yuqorida aytib o'tilganidek, ushbu maqsad uchun mahalliy cookie yoki cookie fayllaridan foydalanishingiz mumkin.
qo'shib qo'ydi muallif user7417866, manba
Men doimiy echimni istamayman. Men allaqachon tahrir qilgandim, foydalanuvchi ular bilan suhbatlashganda yana #countni ko'radi
qo'shib qo'ydi muallif Raphael, manba

6 javoblar

Bundan tashqari, klikni eslash uchun sessionStorage (yoki localStorage) dan foydalanishingiz mumkin.

Sahifani yuklagan har safar foydalanuvchi avval tıklandığında tekshirish uchun xotirani tekshiring. Agar shunday bo'lsa, #count o'chirildi.

Foydalanuvchining #notif tugmachasini bosgan holda, #count elementini olib tashlang va ma'lumotlarni keyingi safar qayta tiklash uchun saqlashga yozib oling.

brauzer oynasi yoki tab ochiq bo'lsa, sessionStorage mahalliy ma'lumotlarni saqlaydi. localStorage bu haqda aniq ravishda o'chirilmaguncha uni doimiy saqlab qoladi.

Ushbu savolga siz mahalliy seanslar, sessionStorage, cookie-fayllar va sessiya o'rtasidagi farqlarni yaxshi muhokama qilasiz: LocalStorage, sessionStorage, session va cookie-lar o'rtasidagi farq nima?

Sizning holatingizda menimcha, eng to'g'ri echim sessionStorage (yoki localStorage), chunki bu ma'lumotni serverga yuborishning hojati yo'q.

<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>
1
qo'shib qo'ydi
agar server tomonidan talab qilinmasa, ular qayta ishlamaydi
qo'shib qo'ydi muallif user7417866, manba
siz haqiqatan ham ojizsizmi yoki harakat qilyapsizmi ... mahalliy kompyuterda saqlanadigan cookie-fayllar faqat server foydalanish uchun aniq birlashtirilmaguncha ... faqat savoldan javoblarni o'qib chiqish, bu barcha holatlar uchun to'g'ri bo'lishini anglatmaydi ...
qo'shib qo'ydi muallif user7417866, manba
Hujjatlarni qidirib topishingiz va veb-sayt orqali bu so'rov uchun sizning harakatingizni qadrlayman. Http brauzerlari serverga faqat tegishli bo'lsa, masalan, yuborilishi mumkin. Agar siz Google bilan bog'liq cookie fayllaringiz bo'lsa, u har bir sahifaga emas, faqat googlega yuboriladi. Shu singari, biz bu erda hech qanday veb-saytga tegishli bo'lmagan cookie-fayllarni o'rnatmoqdamiz. siz xulosaga kelishga umid qilamiz :)
qo'shib qo'ydi muallif user7417866, manba
afaik HTTP - bu vatansiz protokol. Server mijoz emas, balki har safar aloqa o'rnatadi. Shunday qilib, server bunday so'rovni qila olmaydi. Mijozga serverga so'rov yuborilsa, barcha tegishli cookie fayllari HTTP sarlavhalariga yuboriladi. Odatiy yondashuv server serverga cookie-fayllarni jo'natadi, ularni mijozga jo'natadi, mijoz ularni mahalliy va har doim mijozga saqlaydi HTTP sarlavhasi cookie fayllarini o'z ichiga oladi (albatta, domenga, yo'lga mos keluvchi ...). https://developer.mozilla.org/en-US/docs/Web/HTTP/C‌ ookies
qo'shib qo'ydi muallif airos, manba
Iltimos, server tomonidan talab qilinmaguncha, serverga yuborilgan cookie-fayllarni qo'llab-quvvatlaydigan har qanday ma'lumotni bera olasizmi?
qo'shib qo'ydi muallif airos, manba
Shunga qaramay, http cookie-fayllari serverga yuboriladi Siz foydalanadigan kutubxonaning hujjatlarini o'zingizning javobingiz bilan tekshirishingiz mumkin . Hech bir saytga tegishli bo'lmagan "cookie fayllari" mavjud emas.
qo'shib qo'ydi muallif airos, manba
cookie-fayllar mahalliy sifatida saqlanadi (mijozda). Biroq, ular har bir so'rov uchun server va mijoz o'rtasida uzatiladi (qarang: https://developer.mozilla.org/en-US/docs/Web/API/Document/co‌ okie ), bu men aytmoqchi bo'lgan narsa
qo'shib qo'ydi muallif airos, manba

I'm using jQuery plugin (jQuery cookies) for this, you can get the same from https://github.com/js-cookie/js-cookie

Foydalanuvchiga tugmani bosgan holda, birinchi navbatda, kuki-fayllarni o'rnatish

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

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

So'ngra, sizning yo'rgagingizda bu maqsadni tekshirishingiz mumkin

$(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>

Foydalanuvchilar tizimdan chiqqanda Cookie-larni o'chirish ...

Cookies.remove('RemoveCount');
0
qo'shib qo'ydi
Yaxshi, uning ishini bilish yaxshi, yordam berishga shukur :)
qo'shib qo'ydi muallif user7417866, manba
faqat JS va jQuery bilan o'ynashingiz kerak bo'lsa, laravel bilan hech qanday muammo bo'lmasligi kerak.
qo'shib qo'ydi muallif user7417866, manba
OK, u hozir ishladi. rahmat
qo'shib qo'ydi muallif Raphael, manba
Buni tasavvur qilolmaysiz
qo'shib qo'ydi muallif Raphael, manba

xuddi shunga o'xshash harakat qildim

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

Sessiya xotirasidan foydalanganim uchun u mijoz slaydida saqlanadi

ushbu havolani tekshiring:

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

0
qo'shib qo'ydi

bu juda oddiy.

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

Yuqoridagi kodni JavaScript fayliga yoki skript tagiga joylashtiring.

0
qo'shib qo'ydi
sahifani yangilanishda qanday qo'llab-quvvatlaysiz?
qo'shib qo'ydi muallif user7417866, manba
<?php
if(!isset($_SESSION["session_name"]))
{
$_SESSION["session_name"]='';
}
?>
<script>
var session=<?php echo $_SESSION["session_name"]; ?>;
if(session!='')
{
$("#count").hide();
}
</script>
0
qo'shib qo'ydi
//one option
$(document).ready(function(){
   $("#count").hide();  
});
//second option
$(document).ready(function(){
   $("#count").remove();  
});
//third option
$(document).ready(function(){
   $("#count").css("display","none");  
});
0
qo'shib qo'ydi
lekin siz uni hal qilishda tekshirasizmi?
qo'shib qo'ydi muallif user7417866, manba
bu har doim siz yashirish tugmasini bosishdan qat'i nazar, hisobni yashiradi
qo'shib qo'ydi muallif user7417866, manba
foydalanuvchi amalini ma'lumotlar bazasida saqlashi mumkin, va jildni jb-ga saqlash yoki saqlash uchun jildni yuklanganda yoki yangilang
qo'shib qo'ydi muallif Nishit Manjarawala, manba
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb

PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin