クリックイベント後のjqueryの停止mouseoverイベント
-
19-09-2019 - |
質問
誰かがこれで私を助けることができます。
私は、クリックイベントから要素ごとに異なる色を設定しようとしています。
問題はmouseoverイベントが再びすべてが白になるということです。だから、私は決して アクティブ(actief)クラスオフの色を見ることがます。
私は何ができるか、私はすでに??)(ラインstopevent伝播に入れtry'd
おかげで、リチャード
$("#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のパレードに雨までもありませんが、なぜだけでは使用しない?疑似クラスを置く
あなたのmouseoverイベントでこれを試してください:
var currentColor = $(this).css("background-color");
jQuery.data($(this).get(0), "basecolor", currentColor);
これは、要素とメタデータを格納します。あなたはその後、クリックイベントでその値を読み取ることができます。
var currentColor = jQuery.data($(this).get(0), "basecolor");
所属していません StackOverflow