0

誰かがこれで私を助けることができます

クリックイベントの要素に別の色を設定しようとしています。

問題は、マウスオーバーイベントによってすべてが再び白くなることです。そのため、active(actief)クラスの色が表示されることはありません。

私は何ができますか、私はすでに行stopeventpropagation()を入れようとしましたか?

ありがとう、リチャード

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

JQuery パレードに雨が降るわけではありませんが、単に :hover 疑似クラスを使用しないのはなぜですか?

于 2009-12-16T01:42:12.400 に答える
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

代わりにクラスを使用してください。要素をクリックすると、その要素に別のクラスが追加されます。マウスオーバー/アウトで何かを行う前に、このクラスが設定されていないことを確認してください。これには、必要に応じて、クリックした要素のスタイルを CSS に移動できるという利点もあります。

于 2009-12-16T01:24:46.530 に答える