2017-02-07 8 views
0

私はJavascriptを初めて使用しています。ユーザーがHTML表の列を表示または非表示に編集できるHTML表のJavascriptがあります。スクリプトは正常に動作します。しかし、問題は、ページがリフレッシュされるときに、htmlテーブルのすべてのカラムが表示されることです。最後の設定は記憶されません。Javascript Cookieで設定を保存

スクリプトから最後のアクションの設定を保存できるようにするため、ページを最新表示または読み込みするときに、前回の設定を記憶しています。私はこれを達成する方法を知らない、私はそれを行う方法を私に示すことができれば感謝しますか?ここで

はJavascriptを次のとおりです。

はjavascriptの書き込み中にクッキーを書き込むにはjsfiddle https://jsfiddle.net/b9chris/HvA4s/

<script> 
$(document).ready(function(){ 

$('#edit').click(function() { 
    var headers = $('#table th').map(function() { 
     var th = $(this); 
     return { 
      text: th.text(), 
      shown: th.css('display') != 'none' 
     }; 
    }); 

    var h = ['<div id=tableEditor><button id=done>Done</button><table><thead><tr>']; 
    $.each(headers, function() { 
     h.push('<th><input type=checkbox', 
       (this.shown ? ' checked ' : ' '), 
       '/> ', 
       this.text, 
       '</th>'); 
    }); 
    h.push('</tr></thead></table></div>'); 
    $('body').append(h.join('')); 

    $('#done').click(function() { 
     var showHeaders = $('#tableEditor input').map(function() { return this.checked; }); 
     $.each(showHeaders, function(i, show) { 
      var cssIndex = i + 1; 
      var tags = $('#table th:nth-child(' + cssIndex + '), #table td:nth-child(' + cssIndex + ')'); 
      if (show) 
       tags.show(); 
      else 
       tags.hide(); 
     }); 

     $('#tableEditor').remove(); 
     return false; 
    }); 

    return false; 
}); 
}); 
</script> 
+0

'document.cookie'を見てください。 http://www.w3schools.com/js/js_cookies.asp :) – Jer

+0

これは生のJavaScriptではなく、ライブラリ(おそらくjQuery)を使用しています。クッキーを操作したい場合は、同じパスをたどってjQueryプラグインを見つけてください。 –

+0

私はjquery 1.9.1を使用しています – user2107349

答えて

0

で働い例を参照してください:

あなたは、任意の名前あなたとユーザ名を置き換えることができ
document.cookie = "username=John Doe"; 

考えることができる、=背後にあるものはもちろんあなたの価値です。

function getCookie(cname) { 
    var name = cname + "="; 
    var decodedCookie = decodeURIComponent(document.cookie); 
    var ca = decodedCookie.split(';'); 
    for(var i = 0; i <ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') { 
      c = c.substring(1); 
     } 
     if (c.indexOf(name) == 0) { 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 

はちょうどあなたが例

+0

私はそれを行う方法を示すためにスクリプトを変更できますか?私はjavascriptには新しく、正確に何をしなければならないか分からない。 – user2107349

0

のユーザー名を取得したい場合は、ブラウザのローカルストレージに設定を保存することができgetCookie("username")を呼び出す:あなたはW3Scoolsからこの機能を使用することができ、あなたのクッキーを読むこと

official documentationを参照してください。

基本的には、スクリプトがロードされているときは、セッション記憶域を調べて目的の設定を取得してください。ユーザーがテーブルを編集するたびに、その変更をストレージ内に入れます。それはかなり簡単で、本当にクッキーほど重くはありません。

+0

これを達成するために私のスクリプトを修正する必要があるものを正確に見せてもらえますか? – user2107349

関連する問題