2016-04-04 25 views
0

Bu sayfada, form içeren birden çok div var. Bir kullanıcı bir div tıkladığında ve formu gönderdiğinde, sayfa yeniden yüklenir. Bu yeniden yüklendikten sonra, sayfanın yeniden yüklenmesinden sonra sayfayı yeniden tanımlamak için sayfanın yeniden yüklenmesinden önce seçilen kullanıcının belirli bir bölümüne bir sınıf eklemek istiyorum.Jquery Sayfası Yeniden Yükle Div'u seç

Sorum şu: Sayfayı yeniden yükledikten sonra söz konusu div'un kimliğini nasıl koruyabilirim?

<div id="1"></div> 
<div id="2"></div> 
<div id="3"></div> 

<script> 
    $(document).ready(function() { 
     // What needs to go here...? 
    }); 
</script> 

Teşekkürler!

+3

içinde kullanabileceğiniz [localStorage veya sessionStorage API] (https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API) iyi tarayıcılarda – n00dl3

+2

bir olarak iletin URL'de argüman var mı? – putvande

+0

Yalnızca yerel olarak devam etmek istiyorsanız, durumu birden çok sistemde (geçerli kullanıcıya göre) devam ettirmek istiyorsanız, 'localStorage' öğesini düşünebilirsiniz, o zaman sunucu tarafında kalmaya ihtiyaç duyarsınız –

cevap

-1

En son seçilen div alanını kaydetmeniz gerekir. Yerel depolama, çerez veya benzerlerini kullanabilirsiniz. Ayrıca, hangi divın seçildiğini bilmek için siteyi yenilediğinizde, URL'de ek bir parametre gönderebilirsiniz, aksi halde belirli div'u bilebilirsiniz.

Saygılar!

+0

Bunun nasıl yapılacağını gösterir misiniz? – putvande

0

URL'lerde URL'leri kullanabilirsiniz.

<script> 
    $(document).ready(function(){ 
      function getUrlVars() { 
       var vars = [], hash; 
       var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
       for(var i = 0; i < hashes.length; i++) 
       { 
        hash = hashes[i].split('='); 
        vars.push(hash[0]); 
        vars[hash[0]] = hash[1]; 
       } 
       return vars; 
      } 
    var myParam = = getUrlVars()['myparam']; 
    if (myParam == 'first') { 
     // do here whatever you want, you kwow the first div was clicked 
    } 


    $('#1').click(function(){ 
     window.location = 'index?myparam=first'; 
    }) 

    }) 
</script> 
0

LocalStorage veya sessionStorage'ı kullanabilirsiniz. Ben kişisel olarak localStorage kullanırım.

//inside document ready 
$('#1').click(function() { 
localStorage.setItem("One", "clicked") 
} 
$('#2').click(function() { 
localStorage.setItem("Two", "clicked") 
} 
$('#3').click(function() { 
    localStorage.setItem("Three", "clicked") 
} 
window.onload = get() 
function get() { 
    var One = localStorage.getItem("One") 
    var Two = localStorage.getItem("Two") 
    var Three = localStorage.getItem("Three") 
    //then if the var is equal to click, do what you want to it. 
} 
+0

Sanırım OP, sayfanın yeniden yüklenmesi için bir sınıf ekleyebilmek için tıklanan divun kimliğini kaydettikten sonra oldu. – putvande

+0

Tamam, düzenlenmiş soru. OP'nin tıklandığında ne yapmak istediğini bilmiyorum. – Hawkeye

0

Bunu aklıma gelen iki yol vardır. Birincisi (eğer tüm sayfayı yeniden yüklemeniz gerekiyorsa): Formunuza GET parametreleri ekleyin ve javascript'inizde kontrol edin.

This post explains how to retrieve GET parameters in Javascript

http://example.com/submit.php?selected_div=div_id&other_selected_div=div_id 
Ama formu göndermek için bir AJAX arama kullanmak ve daha sonra başarılı bir çağrıdan sonra da DOM'da değişiklik (veya bir hata iletisi görüntüler) çok daha kolay olurdu. Bu şekilde, bir sayfanın yeniden yüklenmesiyle ilgili bir şeye devam etmeniz gerekmez.

Bunu jQuery kullanarak yapabilirsiniz. Bu here in the official docs açıklanan ve this tutorial.

İlgili konular