クリックするとjQueryを呼び出してクラスを削除して置き換えるボタンがいくつかあります。私が呼びたいjQuery.mouseoverイベントは、操作されたクラスを無視しているだけで、ページロードのクラスに従っています。jQueryセレクターは、ページがロードされた後に操作されるクラスを無視しています。
:
私は、ロールオーバー時にページ上の他の場所のオブジェクトに.highlightedクラスを追加するために、いくつかのjQueryを呼び出すボタンの列があります。
は、ここでは一例に以下JSFiddle
詳細ですここでは例のHTMLです:
<ul id="portfolioLinks">
<li class="activeButton kittens"><a class="kittens" href="#"></a></li>
<li class="activeButton otters"><a class="otters" href="#"></a></li>
<li class="depressed donkey"><a class="donkey" href="#"></a></li>
</ul>
と対応のjQueryコード:
var selectedType = '.' + $(this).attr('class');
$("li.activeButton a").mouseenter(function() {
var selectedType = '.' + $(this).attr('class');
$("div.pageContent div" + selectedType).addClass('highlighted');
});
$("#portfolioLinks a").mouseleave(function() {
$("div.pageContent div").removeClass('highlighted');
});
これは、ページのロードからの静的コンテンツに正常に動作しますが、私は$(this)
に.depressed
クラスを追加し、他のすべてに.activeButton
を与えるために、私は のjQueryを取得]ボタンをクリックしたとき:
$("#portfolioLinks a").click(function() {
$("#portfolioLinks li").addClass('activeButton').removeClass('depressed');
$(this).parent().removeClass('activeButton').addClass('depressed');
//do some other stuff
});
しかし、それは変更されたクラスを完全に無視するようであり、.activeButton
クラスを持たないボタンと一致するdivを強調表示し続けます。
私は昨夜の大部分を費やし、今朝はこれを理解しようとしました。私は.not
s、:not
s、if
のすべての方法を試しましたが、今は完全に失われています。
ご指摘いただければ幸いです。このような代わりに、ここで
恐ろしい、あなたの助けのためにどうもありがとうございます!私は前に.live()と.delegate()に出くわすことはなかった。彼らは物事を終わらせる方法のように見える! –
@Magnakai - 歓迎! –