2016-04-13 20 views
2

Yığın taşmasının mükemmel bir hayranıyım ama bu yazmam gereken ilk şey!Sayfadaki ikinci ziyarette javascript nasıl aktif hale getirilir?

Şirket logosuna tıkladığınızda açılan bir çeşit açılır menüye sahip bir sayfam var. Düz css olarak geliştirilmiştir. ben gerekenler

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

bu ayarlamaktır ... sen ecc "hakkında", "galeride", "rehber" gibi iç sayfalarda gezinmek ederken menüsü açıldı tutmak için bu senaryoyu kullandım komut dosyası ana sayfada, daha önce anlattığım diğer iç sayfalardan geri döndüğünüzde aktif hale getirildi. Ve logoya ihtiyacım olan ilk anasayfa yükünde, gizlediği menü ile kapatılmış!

Herkesin bazı önerileri veya önerileri var mı? Yine herkese çok teşekkür ederim!

Başka herhangi bir çözüm var mı? İlk ziyaretimde

+1

Bunu yapmak için çerezleri kullanabilir veya yerel depolama alanını kullanabilirsiniz :) –

cevap

2

, Belgeniz hazır maddesinin içeride:

$(document).ready(function() { 
    if(localStorage.getItem("displayDropDown") === "true") { 
     $("#slide").click(); 
    } 
    localStorage.setItem("displayDropDown", "true"); 
}); 
:

$(document).ready(function() { 
    if(localStorage.getItem("displayDropDown") === "true") { 
     $("#slide").click(); 
    } 
}); 

aynı doc hazır fıkrada ikisini de koyun: Her ziyaretimde

localStorage.setItem("displayDropDown", "true"); 

+0

Kullanıcı aynı sayfayı ziyaret ettiğinden, iki komut dosyası değil, tek bir komut dosyanız olmalıdır. Tek bir blok yap. –

+0

Üzgünüm. Javascript kodları konusunda uzman değilim. LocalStorage nedir? Ve nereye koymam gerekiyor? İki arasındaki düz? – Darkan85

+0

Tek bir komut satırında nasıl yapabilirim? – Darkan85

1

Bu tam bir örnektir. Bir yedek olarak localStorange ve (js-cookie ile) tanımlama kullanıyor:

modern tarayıcı örneği:

<!DOCTYPE html> 
    <html> 
    <head> 
    <title>Test</title> 
    </head> 
    <body> 
    <h1 id="count"></h1> 
    <script type="text/javascript"> 
     const getNumberOfPreviousVisits =() => { 
     const numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0; 

     window.localStorage.numberOfVisits = numberOfVisits; 

     return numberOfVisits; 
     } 

     document.addEventListener('DOMContentLoaded', function(event) { 
     if (getNumberOfPreviousVisits() > 0) { 
      // $("#slide").click(); 
     } 
     }); 
    </script> 
    </body> 
</html> 

Örnek, eski tarayıcıları desteklemektedir:

<!DOCTYPE html> 
    <html> 
    <head> 
    <title>Test</title> 
    </head> 
    <body> 
    <h1 id="count"></h1> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script> 
    <script type="text/javascript"> 
     var localStorageAvailable = function() { 
     try { 
      var x = '__storage_test__'; 
      window.localStorage.setItem(x, x); 
      window.localStorage.removeItem(x); 
      return true; 
     } catch(e) { 
      return false; 
     } 
     } 

     var getNumberOfPreviousVisitsLocalStorage = function() { 
     var numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0; 

     window.localStorage.numberOfVisits = numberOfVisits; 

     return numberOfVisits; 
     } 

     var getNumberOfPreviousVisitsCookie = function() { 
     var numberOfVisits = Cookies.get('numberOfVisits') ? parseInt(Cookies.get('numberOfVisits'), 10) + 1 : 0; 

     Cookies.set('numberOfVisits', numberOfVisits); 

     return numberOfVisits; 
     } 

     var getNumberOfPreviousVisits = function() { 
     if (localStorageAvailable()) { 
      return getNumberOfPreviousVisitsLocalStorage(); 
     } 

     return getNumberOfPreviousVisitsCookie(); 
     } 

     document.addEventListener('DOMContentLoaded', function(event) { 
     if (getNumberOfPreviousVisits() > 0) { 
      // $("#slide").click(); 
     } 
     }); 
    </script> 
    </body> 
</html> 

orijinal örnek:

<!DOCTYPE html> 
    <html> 
    <head> 
    <title>Test</title> 
    </head> 
    <body> 
    <h1 id="count"></h1> 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script> 
    <script type="text/javascript"> 
     const localStorageAvailable =() => { 
     try { 
      const x = '__storage_test__'; 
      window.localStorage.setItem(x, x); 
      window.localStorage.removeItem(x); 
      return true; 
     } catch(e) { 
      return false; 
     } 
     } 

     const getNumberOfPreviousVisitsLocalStorage =() => { 
     const numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0; 

     window.localStorage.numberOfVisits = numberOfVisits; 

     return numberOfVisits; 
     } 

     const getNumberOfPreviousVisitsCookie =() => { 
     const numberOfVisits = Cookies.get('numberOfVisits') ? parseInt(Cookies.get('numberOfVisits'), 10) + 1 : 0; 

     Cookies.set('numberOfVisits', numberOfVisits); 

     return numberOfVisits; 
     } 

     const getNumberOfPreviousVisits =() => { 
     if (localStorageAvailable()) { 
      return getNumberOfPreviousVisitsLocalStorage(); 
     } 

     return getNumberOfPreviousVisitsCookie(); 
     } 

     document.addEventListener('DOMContentLoaded', function(event) { 
     if (getNumberOfPreviousVisits() > 0) { 
      // $("#slide").click(); 
     } 
     }); 
    </script> 
    </body> 
</html> 
+1

Bu ES6 mı? Bunu hala desteklemeyen bir dizi mevcut tarayıcı olduğunu unutmayın. Aksi takdirde, güzel cevap. – ArtOfCode

+0

Evet… Örneği yayınladıktan sonra farkettim. Bir çerez geri dönüşü ve ES2015 kullanmak açıkça kötü bir fikirdir – dom

+0

Ama bu kodu kod parçalarımla çalıştırmam için nereye koymalıyım? – Darkan85

İlgili konular