单击事件后jquery停止鼠标悬停事件

时间:2009-12-16 01:15:52

标签: jquery event-handling click mouseover mouseout

有人可以帮助我吗

我正在尝试为点击事件中的元素设置不同的颜色。

问题是鼠标悬停事件会使所有内容再次变白。所以,我永远不会 看看活动(actief)类的颜色。

我该怎么做,我已经尝试过放入stopevent传播()??

谢谢,理查德

$("#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 个答案:

答案 0 :(得分:1)

改为使用班级。单击元素时,将另一个类添加到元素。在鼠标悬停/退出之前执行任何操作之前,请确保未设置此类。如果您愿意,这还有一个优点,即允许您将单击元素的样式移动到CSS中。

答案 1 :(得分:1)

停止传播功能会停止点击事件的默认行为,并且与鼠标悬停无关。

将css选择器的使用更改为与这些CSS更改对应的addClass函数,您将能够获得您正在寻找的事件的顺序。

答案 2 :(得分:1)

在您的鼠标悬停事件中尝试此操作:

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

它使用元素存储元数据。然后,您可以在点击事件中读取该值

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

答案 3 :(得分:1)

不要下雨JQuery游行,但为什么不使用:hover psuedo类?