0

有人可以帮我弄这个吗

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

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

我能做什么,我已经尝试在 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");


    }); 
4

4 回答 4

1

改用一个类。单击一个元素时,向该元素添加另一个类。确保在鼠标悬停/移出之前未设置此类。如果您愿意,这还具有允许您将单击元素的样式移动到 CSS 中的优点。

于 2009-12-16T01:24:46.530 回答
1

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

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

于 2009-12-16T01:26:18.460 回答
1

在你的鼠标悬停事件中试试这个:

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

它将元数据与元素一起存储。然后您可以在点击事件中读取该值

var currentColor = jQuery.data($(this).get(0), "basecolor");
于 2009-12-16T01:31:01.080 回答
1

不要在 JQuery 游行中下雨,但为什么不直接使用 :hover 伪类呢?

于 2009-12-16T01:42:12.400 回答