2015-12-22 3 views
1

у меня есть 2 различных файлов CSS для 2 клиентовJQuery добавить внешний файл CSS для всех HTML-страниц

Если я выбираю вариант 1 из индексатор страниц, все внутри HTML-страницы должны добавить ниже CSS файл:

<link rel="stylesheet" type="text/css" href="css/client1.css">

или если я выбираю вариант 2, то он должен загрузить ниже CSS файл:

<link rel="stylesheet" type="text/css" href="css/client2.css">

Но это изменение должно произойти для всех HTML-файлов, который находится под страницами/

Indexer.html

<select class="selInput" id="selectClient"> 
    <option>-- Select Client --</option> 
    <option value="client1">Client 1</option> 
    <option value="client2">Client 2</option> 
</select> 

<script> 
$(document).ready(function(){ 

    $(document).on("change", "#selectClient", function(){ 
     jQuery(this).find("option:selected").each(function(){ 
      if($(this).attr("value")=="client1-script"){ 
       $("body").load("css/client1.css"); 
      } 
      else if($(this).attr("value")=="client2-script"){ 
       $("body").load("css/client2.css"); 
      } 
     }); 
    }); 

}); 

</script> 
+0

почему не включают в себя 2 из этих файлов. то просто добавить или удалить класс на 'body' соответственно? – roullie

+1

Вы даже понимаете, как работает '.load()'? –

+0

Привет @Praveen Kumar ... Извините, это было просто для демонстрации. У меня нет большой идеи по сценарию :( – Reddy

ответ

1

У вас есть два варианта :

  1. Загрузите оба CSS и используйте классы, чтобы иметь разницу в них.

    Рассмотрим client1.css:

    body.client1 { /* rules */ } 
    body.client1 h1 { /* rules */ } 
    body.client1 p { /* rules */ } 
    body.client1 ul, 
    body.client1 ol { /* rules */ } 
    

    Рассмотрим client2.css:

    body.client2 { /* rules */ } 
    body.client2 h1 { /* rules */ } 
    body.client2 p { /* rules */ } 
    body.client2 ul, 
    body.client2 ol { /* rules */ } 
    

    И в вашем HTML:

    <body class="client1"> <!-- if client 1 --> 
    <body class="client2"> <!-- if client 2 --> 
    

    В вашем JavaScript:

    $(function() { 
        $("body").on("change", "#selectClient", function() { 
         $("#body").removeClass("client1 client2").addClass("client" + $(this).val()); 
        }); 
    }); 
    
  2. Используйте <link /> с id и изменить href.

    В вашем <head>:

    <link rel="stylesheet" type="text/css" href="css/client1.css" id="style" /> 
    

    В вашем JavaScript:

    $(function() { 
        $("body").on("change", "#selectClient", function() { 
         $("#style").attr("href", "css/client" + $(this).val() + ".css"); 
        }); 
    }); 
    
+0

** @ Praveen Kumar **. .. Спасибо за ваше время, он подает заявку только на текущую страницу ... но я хочу: В ** index.html **, Если я выберу ** вариант ** client1 **, эта страница перейдет к ** client.html ** страница с загруженным файлом "client1.css".а также оставшиеся html-страницы также должны загружать файл ** client1.css ** ... Возможно ли это? – Reddy

+0

@Reddy Я предлагаю вам пойти на этот плагин: ['jQuery.cookie'] (https://github.com/carhartl/jquery-cookie) и установить его при изменении. –

+0

** @ Praveen Kumar ** Еще раз спасибо ... пройдут через него, а также ответьте на ваш ответ:) ... – Reddy