Jquery останавливает событие наведения курсора мыши после события щелчка

StackOverflow https://stackoverflow.com/questions/1911644

Вопрос

Может кто-то помочь мне с этим

Я пытаюсь установить для элемента другой цвет из события щелчка.

Проблема в том, что событие наведения мыши снова делает все белым.Итак, я никогда не увижу цвет из активного (Actief) класса.

Что я мог сделать, я уже пытался вставить строку stopevent propagation()??

спасибо, Ричард

$("#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");


    }); 
Это было полезно?

Решение

Вместо этого используйте класс.При щелчке по элементу добавьте к нему еще один класс.Убедитесь, что этот класс не установлен, прежде чем делать что-либо при наведении курсора мыши или выходе.Это также имеет то преимущество, что позволяет вам при желании переместить стиль элементов, по которым щелкают мышью, в CSS.

Другие советы

Эта функция остановки распространения останавливает поведение события щелчка по умолчанию и не влияет на наведение курсора мыши.

Изменив использование селектора CSS на функцию addClass, соответствующую этим изменениям CSS, вы сможете получить порядок событий, который ищете.

Чтобы не усложнять парад JQuery, но почему бы просто не использовать класс :hover psuedo?

попробуйте это в событии наведения курсора мыши:

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

он хранит метаданные вместе с элементом.затем вы можете прочитать это значение в событии щелчка

var currentColor = jQuery.data($(this).get(0), "basecolor");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top