使用单选按钮状态选择和选择加载时,身体负载的主题转换器不起作用?
Posted
技术标签:
【中文标题】使用单选按钮状态选择和选择加载时,身体负载的主题转换器不起作用?【英文标题】:Theme changer on body load is not working using radio button state selection and onload selected? 【发布时间】:2019-01-14 11:46:51 【问题描述】:我使用简单的单选按钮创建了一个主题更换器,当检查单选按钮状态时,应该选择并工作主题。
下面是代码
用于本地存储选择。
$(function()
$('input[type=radio]').each(function()
var state = JSON.parse( localStorage.getItem('radio_' + $(this).attr('value')) );
if (state) this.checked = state.checked;
); ); $(window).bind('unload', function()
$('input[type=radio]').each(function()
localStorage.setItem('radio_' + $(this).attr('value'), JSON.stringify(checked: this.checked)
);
);
);
*单选按钮代码*
$("input[name$='sidebarccolor']").click(function ()
var radio_theme = $(this).val();
if (radio_theme == 'default')
$('link[href="css/style.css"]').attr('href','css/style.css');
$('link[href="css/stylered.css"]').attr('href','css/style.css');
$('link[href="css/stylegreen.css"]').attr('href','css/style.css');
$('link[href="css/styleblue.css"]').attr('href','css/style.css');
else if (radio_theme == 'red')
$('link[href="css/style.css"]').attr('href','css/stylered.css');
$('link[href="css/stylered.css"]').attr('href','css/stylered.css');
$('link[href="css/stylegreen.css"]').attr('href','css/stylered.css');
$('link[href="css/styleblue.css"]').attr('href','css/stylered.css');
else if (radio_theme == 'green')
$('link[href="css/style.css"]').attr('href','css/stylegreen.css');
$('link[href="css/stylered.css"]').attr('href','css/stylegreen.css');
$('link[href="css/stylegreen.css"]').attr('href','css/stylegreen.css');
$('link[href="css/styleblue.css"]').attr('href','css/stylegreen.css');
else if (radio_theme == 'blue')
$('link[href="css/style.css"]').attr('href','css/styleblue.css');
$('link[href="css/stylered.css"]').attr('href','css/styleblue.css');
$('link[href="css/stylegreen.css"]').attr('href','css/styleblue.css');
$('link[href="css/styleblue.css"]').attr('href','css/styleblue.css');
);
Selected 状态已经在工作(这意味着单选按钮选择在 body onload 上工作正常)。但我无法在身体负荷上获得选定的广播主题。
【问题讨论】:
这个问题是完全不同的标记请再次阅读问题 不,基本上我已经创建了一个样式表更改器并使用单选按钮,但在正文负载样式表更改仅适用于单击而不适用于正文负载。 如何发送onload
的初始值?
【参考方案1】:
这是你的答案
//choose themes color changer
$("input[name$='sidebarccolor']").click(function ()
var radio_theme = $(this).val();
if (radio_theme == 'default')
$('link[href="css/style.css"]').attr('href','css/style.css');
$('link[href="css/stylered.css"]').attr('href','css/style.css');
$('link[href="css/stylegreen.css"]').attr('href','css/style.css');
$('link[href="css/styleblue.css"]').attr('href','css/style.css');
else if (radio_theme == 'red')
$('link[href="css/style.css"]').attr('href','css/stylered.css');
$('link[href="css/stylered.css"]').attr('href','css/stylered.css');
$('link[href="css/stylegreen.css"]').attr('href','css/stylered.css');
$('link[href="css/styleblue.css"]').attr('href','css/stylered.css');
else if (radio_theme == 'green')
$('link[href="css/style.css"]').attr('href','css/stylegreen.css');
$('link[href="css/stylered.css"]').attr('href','css/stylegreen.css');
$('link[href="css/stylegreen.css"]').attr('href','css/stylegreen.css');
$('link[href="css/styleblue.css"]').attr('href','css/stylegreen.css');
else if (radio_theme == 'blue')
$('link[href="css/style.css"]').attr('href','css/styleblue.css');
$('link[href="css/stylered.css"]').attr('href','css/styleblue.css');
$('link[href="css/stylegreen.css"]').attr('href','css/styleblue.css');
$('link[href="css/styleblue.css"]').attr('href','css/styleblue.css');
);
//used for local storage.
$(function()
$('input[type=radio]').each(function()
var state = JSON.parse( localStorage.getItem('radio_' + $(this).attr('value')) );
if (state) this.checked = state.checked;
);
);
$(window).bind('unload', function()
$('input[type=radio]').each(function()
localStorage.setItem('radio_' + $(this).attr('value'), JSON.stringify(checked: this.checked));
//$(this).trigger("click");
);
);
setTimeout(function()
$('input[type=radio]:checked').removeProp("checked");
$('input[type=radio]:checked').attr("checked", true).trigger("click");
);
【讨论】:
以上是关于使用单选按钮状态选择和选择加载时,身体负载的主题转换器不起作用?的主要内容,如果未能解决你的问题,请参考以下文章