2016-04-04 11 views
0

私はそのページにフォームを含む複数のdivを持っています。ユーザーがdivをクリックしてフォームを送信すると、ページがリロードされます。そのリロードの後、私はページをリロードする前にユーザーが選択した特定のdivにクラスを追加して、ページのリロード後にそのクラスを識別したいと考えています。JqueryページリロードしてDivを選択

私の質問は、ページのリロード後にその特定のdivのIDを保持するにはどうすればいいですか?

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

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

ありがとうございます!

+3

であなたが使用することができます[のlocalStorageかのsessionStorage API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API)まともなブラウザで – n00dl3

+2

はとして渡しますURLの引数? – putvande

+0

複数のシステム間で状態を永続化したい場合(現在のユーザに基づいて)、サーバ側で永続化する必要がある場合は、ローカルでのみ持続させる場合は 'localStorage'と考えることができます –

答えて

-1

最後に選択したdivを任意の場所に保存する必要があります。 ローカルストレージ、クッキーなどを使用できます。また、特定のdivを知ることができないため、サイトをリフレッシュして選択したdivを知るために、urlに追加のパラメータを送信することもできます。

よろしくお願いいたします。

+0

これはどのように行うことができますか? – putvande

0

uramsにparamsを使用できます。

<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またはsessionStorageを使用できます。私は個人的にlocalStorageを使用します。

//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

OPは、ページのリロード時にクラスを追加できるように、クリックされたdivのIDを保存した後だったと思います。 – putvande

+0

Ok、編集された質問。私は、OPがクリックされたら何をしたいのか分からない。 – Hawkeye

0

これを行うには2つの方法があります。最初の1つ(絶対にページ全体をリロードする必要がある場合):GETパラメータをフォーム送信に追加してから、JavaScriptでチェックします。

http://example.com/submit.php?selected_div=div_id&other_selected_div=div_id 

This post explains how to retrieve GET parameters in Javascript

しかし、フォームを送信して、呼び出しが成功した後、あなたのDOMを変更する(またはエラーメッセージを表示)するためにAJAX呼び出しを使用する方がはるかに簡単になります。この方法では、ページをリロードしても何も保持する必要はありません。

これはjQueryを使用して行うことができます。それはhere in the official docsに記載されているとthis tutorial.

関連する問題