jQuery evento de parada mouseover após evento de clique
-
19-09-2019 - |
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");
});
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");