JQuery остановить событие наведения мыши после нажатия кнопки - PullRequest
0 голосов
/ 16 декабря 2009

может кто-нибудь помочь мне с этим

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

Проблема в том, что при наведении мыши все снова становится белым. Так что я никогда не буду увидеть цвет активного (actief) класса.

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

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

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


    }); 

Ответы [ 4 ]

1 голос
/ 16 декабря 2009

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

1 голос
/ 16 декабря 2009

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

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

1 голос
/ 16 декабря 2009

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

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

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

var currentColor = jQuery.data($(this).get(0), "basecolor");
1 голос
/ 16 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...