我有一個移動網站,我需要給用戶一個明亮和黑暗的界面選項。爲此,我建立了一個複選框,其形式類似於iPhone IOS7開關。按預期工作,但現在我想通過頁面之間複選框的狀態。根據複選框檢查和設置url變量
我也使用bootstrap作爲移動框架。
我已經搜遍了,到目前爲止這是我的代碼,你能幫我弄清楚爲什麼不工作?
我需要根據iface-toggle
開關的狀態設置#indlink
鏈接。並將href
設置爲ind.html?iface=light
或ind.html?dark
。
控制檯日誌正確回覆交換機的狀態,但由於某種原因,不會更改href
地址。
我還需要將接收頁面上的開關設置爲url值。我已經知道如何解析url變量,並計劃使用$('indlink').prop('checked', true)
。儘管如此,我還沒有測試過,但如果你也可以幫我編寫代碼,那將是一次爆炸。
代碼:
$(document).ready(function() {
if ($("#iface-toggle").prop("checked")) {
$("#indlink").attr("href", "ind.html?iface=light");
console.log("checkbox is checked");
} else {
$("#indlink").attr("href", "ind.html?iface=dark");
console.log("checkbox is not checked");
}
$("#iface-toggle").change(function() {
if (this.checked) {
$('body').css({
"background-color": "white",
"color": "black"
});
$('input select textarea').css({
"color": "white"
});
$("#indlink").attr("href", "ind.html?iface=light");
} else {
$('body').css({
"background-color": "#282c32",
"color": "white"
});
$('input select textarea').css({
"color": "black"
});
$("#indlink").attr("href", "ind.html?iface=dark");
}
})
});
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a id="indlink" href="ind.html">Indicators</a>
</li>
<li>
<div class="switch">
<input id="iface-toggle" class="cmn-toggle cmn-toggle-round" type="checkbox">
<label for="iface-toggle" class="label-for-check"></label>
</div>Interface Color</li>
</ul>
</div>
更新!
對於文檔的目的,這是最後的Javascript:
if(localStorage.dark == 'true') {
$('body').css({"background-color": "#282c32", "color": "white"});
$('input select textarea').css({"color": "black"});
document.getElementById('iface-toggle').checked = false
} else {
$('body').css({"background-color": "white","color": "black"});
$('input select textarea').css({"color": "white"});
document.getElementById('iface-toggle').checked = true
}
$("#iface-toggle").change(function() {
if(this.checked) {
$('body').css({"background-color": "white","color": "black"});
$('input select textarea').css({"color": "white"});
localStorage.dark = 'false';
} else {
$('body').css({"background-color": "#282c32","color": "white"});
$('input select textarea').css({"color": "black"});
localStorage.dark = 'true';
}
});
真棒。非常感謝你。我有另一個問題,一旦我移動到另一個頁面,並檢查'localStorage.dark =='false'',界面改變,但交換機沒有。所以我想也翻轉開關並改變界面。我使用'$('iface-toggle')。prop('checked',false)',但不工作?有任何想法嗎? – 2014-10-01 18:42:30
我假設你正在運行這個:http://callmenick.com/tutorial-demos/css-toggle-switch/ 這工作時,我在控制檯中試過它:'document.getElementById('cmn-toggle-1 ').checked = true;' – 2014-10-01 21:47:41
是的。這正是我正在使用的。優秀。像魅力一樣工作。再次感謝您的幫助。 – 2014-10-02 00:06:38