Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Benedito Juvenal

Escolhendo folha de estilo com Jquery

Recommended Posts

Companheiros,

 

Por que meu código só está funcionando no google chrome?

 

Tenho apenas duas folhas de estilo;

 

<link rel="stylesheet" type="text/css" href="padrao.css">
<link rel="alternate stylesheet" type="text/css" href="contraste.css">

Tenho um botão que funciona como um switch, liga-desliga:

<input type="button" value=" Liga/Desliga contraste " id="bt_contraste">

(function($){
	$.folha = function(modo) {
		var normal = "stylesheet"; // stylesheet padrão
		var contraste = "alternate stylesheet"; // stylesheet com alto contraste. obs.: só usarei uma css alternativa, por isso elaborei a função desta forma
		if (modo=='inicia') { //no carregamento do site verifico se há um cookie folha_atual, se tiver habilito a mesma.
				if ($.cookie("folha_atual")) {
				$("link[rel!='"+$.cookie("folha_atual")+"']")[0].disabled=true; //o que for diferente do cookie eu desabilito
				$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false; //o que for igual ao cookie eu habilito
			}
		}
		else if (modo=='troca') { //se foi pressionado o botão para alterar contraste, então:
			if ($.cookie("folha_atual")) { //vejo se exist o cookie folha_atual, se existir:
				if ($.cookie("folha_atual")==normal) { //se for igual a normal (variável declarada no início do script):
					$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=true; //desabilito a folha de estilo com a rel=cookie que estamos usando
					$.cookie("folha_atual",contraste) // altero o cookie para o conteúdo da variável contraste
					$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false; //habilito a folha de estilos para a rel=cookie, ja que o cookie agora tem outro valor
				}
				else if ($.cookie("folha_atual")==contraste) { //nesta parte faço exatamente o contrário da anterior, caso a cookie esteja com o valor de contraste
					$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=true;
					$.cookie("folha_atual",normal)
					$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false;
				}
			}
			else { // se ainda não há cookie:
				$("link[rel='stylesheet']")[0].disabled=true; // desabilito a folha atual
				$.cookie("folha_atual",contraste) // salvo o cookie com o valor da variável contraste
				$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false; //habilito a folha de estilo (valor recebido pela cookie)
			}
		}
	}
	$(document).ready(function(){ //quando tudo estiver carregado na página
		$.folha("inicia"); //dou um start pra ver se há cookie da folha de estilo
		$("#bt_contraste").click(function(){ // ao clicar no botão switch
			$.folha("troca"); //executo a função para trocar a folha atual
			return false;
		});
	});
})(jQuery);

Alguém pode me ajudar? No IE8 e no firefox, quando clico no botao switch, o site fica sem nenhuma folha de estilo, perde toda a formatação, ou seja, estou conseguindo desabilitar a folha atual, mas não está habilitando a folha com alto contraste. No Chrome funciona perfeitamente.

 

Grato,

 

Benê.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.