【问题标题】:Jquery do not load all css files on changeJquery不会在更改时加载所有css文件
【发布时间】:2019-03-11 17:39:16
【问题描述】:

我有多个品牌 css 文件,每个都有不同的颜色。我还有一台带有这些品牌选项的收音机。我想要的是,当我更改收音机中的值时,加载特定的 css 文件并删除最后一个。 问题是只有第一次加载的 css 显示类,当我更改为第二个选项时,类不加载。

我尝试了 2 种不同的方法,但都没有成功:

$(document).on('change', 'input:radio[name="category"]', function() {
    var $selected = $('input[name=category]:checked').val();
    $('link[title]').remove();
    if ( $(this).val() == $selected ) {
             $('head').prepend('<link rel="stylesheet" href="css/branding/' + $selected + '.css" type="text/css" media="all" title= "' + $selected + '" />');
    }
});

还有版本 2:

$(document).on('change', 'input:radio[name="category"]', function() {
    var $selected = $('input[name=category]:checked').val();
    $('link[title]').remove();
    if ( $(this).val() == $selected ) {
                  function showmd( value ) { 
                    $( 'head' ).prepend('<link rel="stylesheet" href="css/branding/' + $selected + '.css" type="text/css" media="all" title= "' + $selected + '" />');
                }
                $.get( $selected, function( data ) {
                    showmd( data );
                }, 'text');
        }
});

总是,附加的第二个 css 文件不显示类。 任何帮助将不胜感激,谢谢

【问题讨论】:

    标签: jquery select onchange


    【解决方案1】:

    ,看起来您只是添加了一个新样式表,您是否还需要删除之前添加的其他样式表?我看到您删除了所有带有标题的样式表......但是为什么任何样式表都需要标题属性?

    我的建议是在要切换的样式表中添加一个类或一个 ID,然后更改那些特定的属性值。

    所以如果这是在文档头部:

    <link id="branding-stylesheet" rel="stylesheet" href="css/branding/example.css" type="text/css" media="all" />
    
    var $brandingStylesheet = $("#branding-stylesheet");
    var $radios = $('input:radio[name="category"]');
    
    $(document).on('change', $radios, function() {
        var val= $radios.filter(':checked').val();
        if (this.value  === val) {
            $brandingStylesheet.attr('href', "css/branding/" + val + ".css")
        }
    });
    

    此外,有时它可能是浏览器缓存问题,如果是这样,您可能希望在 URL 的末尾添加一个查询字符串来帮助解决这个问题。

    .attr('href', "css/branding/" + val + ".css?cachebreaker=" + Date.now())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2014-12-06
      相关资源
      最近更新 更多