みんな。この Web サイトや他の多くの Web サイトを検索して、Jquery コードで toggleClass 関数が機能しない理由を理解しました。いくつかの異なる説明を見つけましたが、エフェクトで実行したいことと一致しませんでした。
私は Jquery を初めて使用するので、Jquery の機能についてよくわかりません。これが私のJqueryコードです:
$("document").ready(function(){
$("div#btn-slide").click(function(){
$("div#panel").slideToggle("slow");
$("div#btn-slide").toggleClass("smallbox");
});
});
これが私のHTMLコードです。
<div id="panel">
</div>
<div id="btn-slide">
</div>
ここで私が探している効果は非常に単純です。小さい div (btn-slide) をクリックすると、小さい div の上にある大きい div (パネル) が、完全に非表示になるまでブラウザ画面に表示されます。これが、slideToggle("slow" ) 関数。
次に、最後にやりたいことは、小さい div (btn-slide) の背景画像を変更することです。これが、私が toggleClass("smallbox") を使用している理由です。smallbox クラスは私の CSS ファイルにあり、下向きの矢印の背景画像があります。これは、大きな div (パネル) が隠れた場所に滑り込んだときに、小さな div (btn-slide) に表示したい画像です。
これを機能させる唯一の方法は、CSS ファイルに移動し、「smallbox」CSS クラスの background-image の最後に !important を配置することですが、この効果のための適切な Jquery テクニックを知りたいです。 .
注: 小さい div (btn-slide) をクリックして、クリックするたびに背景画像を適切な矢印に変更できるようにしたいと考えています。
この効果を達成するにはどうすればよいですか?
ありがとうございました!
更新:すべての返信に非常に感謝しています。わかりました。あなたのすべての返信で考えさせられたので、toggleClass 関数をもう一度見直したところ、コードが正しく機能するようになったと思います。これが私のCSSコードです。
#PANEL {
width: 240px;
height: 320px;
background-color: #000000;
margin: 0px auto;
}
#BUTTON {
width: 100px;
height: 50px;
background-image:url(Arrow_Up.jpg);
background-repeat: no-repeat;
margin: 0px auto;
}
#BUTTON.GoUp {
background-image:url(Arrow_Down.jpg);
}
さて、明らかに私の間違いは、#BUTTON に新しいクラスを追加する代わりに、指定された background-image を使用してクラス .GoUp を単独で追加していたことです。コードを変更したところ、すべてが正しく機能するようになりました。
迅速な回答をありがとうございました。