Pergunta

alguém pode me ajudar com este

Estou tentando definir uma cor diferente para o elemento a partir do evento clique.

O problema é que o evento mouseover faz tudo branco novamente. Então, eu nunca vou começa a ver a cor fora do (Actief) classe ativa.

O que eu poderia fazer, eu já try'd colocando na propagação linha StopEvent () ??

graças, Richard

$("#tbestel_opties2 span").live("mouseover", function() {
            $t=$(this);
            if(!$t.hasClass('actief')){

                $t.css({'color':'#fff','backgroundColor':'#fdc601'}); 
            }
        });
        $("#tbestel_opties2 span").live("mouseout", function() {
                $t=$(this);
                if(!$t.hasClass('actief')){
                $t.css({'color':'#333','backgroundColor':'#fdc601'});                                                                          }
        });

        $("#tbestel_opties input,#tbestel_opties2 span").live("click", function(e)
        {e.stopPropagation(); 
            $t=$(this);
              $('#tbestel_opties2 .actief').removeClass("actief").css({'color':'#333'});

             $t.addClass("actief")

            $("#opties li:eq(0)").addClass("actief");


    }); 
Foi útil?

Solução

Use uma classe em vez disso. Quando um elemento é clicado, adicionar outra classe ao elemento. Certifique-se esta classe não for definida antes de fazer qualquer coisa em mouseover / out. Isto também tem a vantagem de permitir que você mova o estilo dos elementos clicados em seu CSS, se desejar.

Outras dicas

Essa função de parada de propagação pára o comportamento padrão do evento clique e não tem qualquer influência sobre o mouseover.

Alterar o uso do seletor CSS para uma função addClass que corresponde com essas mudanças de estilo CSS, você vai ser capaz de obter a ordem dos eventos que você está procurando.

Não à chuva sobre o desfile JQuery, mas por que não usar o:? Classe pseudo pairar

tentar isso em seu evento mouseover:

var currentColor = $(this).css("background-color");
jQuery.data($(this).get(0), "basecolor", currentColor);

armazena metadados com o elemento. você poderia então ler esse valor no evento de clique

var currentColor = jQuery.data($(this).get(0), "basecolor");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top