使用单选按钮状态选择和选择加载时,身体负载的主题转换器不起作用?

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");
 );

【讨论】:

以上是关于使用单选按钮状态选择和选择加载时,身体负载的主题转换器不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

单选按钮使用 PHP 解决页面刷新时的默认检查状态

当我滚动列表视图单选按钮被自动选择或取消选择无法保持单选按钮的状态

触发单击单选按钮并记住页面刷新时的选择

从外部 URL 中选择单选按钮 [关闭]

根据单选按钮选择显示/隐藏输入字段

使用 jQuery 对单选按钮状态的反应