在下面的演示片段中,我通過選中一個框來添加下列庫(normalize,jquery,angularjs)。使用LocalStorage記住複選框的狀態和textarea的值
我想要做的是將選中的狀態保存在LocalStorage中,所以當我刷新頁面時,我檢查的庫將保持檢查狀態。
任何想法如何做到這一點? (最好的方式,是DRY)
$(document).ready(function() {
// Save Checked Libraries for LocalStorage
if (localStorage.getItem("checkedLibraries")) {
$("div").html(localStorage.getItem("checkedLibraries"));
}
$(".check").on("change", function() {
var textarea = $('.full-library-code');
var value = $(this).nextAll('input:first').val() + '\n';
if ($(this).prop('checked') == true) {
textarea.val(textarea.val() + value);
} else {
textarea.val(textarea.val().replace(value, ""));
}
localStorage.setItem("checkedLibraries", $("div").html());
});
});
/* only for demo readability */
textarea { width: 500px; height: 200px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="checkbox" class="check" id="norm" /> <label for="norm">Normalize</label>
<input type="text" class="hide" value='<link rel="stylesheet" href="http://necolas.github.io/normalize.css/3.0.1/normalize.css" />' /><br />
<input type="checkbox" class="check" id="jquery" /> <label for="jquery">JQuery</label>
<input type="text" class="hide" value='<script src="http://code.jquery.com/jquery-latest.min.js"></script>' /><br />
<input type="checkbox" class="check" id="ang" /> <label for="ang">Angular JS</label>
<input type="text" class="hide" value='<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js" />' /><br />
<textarea class="full-library-code" placeholder="full library's code"></textarea>
</div>
是什麼aany的意思呢?如果你甚至沒有div,你爲什麼要用'$(「div」)'來做事?你爲什麼不**創建一個MCVE? – Amit
所以你想添加腳本到本地存儲的基礎上,如果用戶檢查框或不是,對吧? –