私は非常に単純なことをしようとしています。基本的に、クリック可能なdivの「ホットスポット」があります。クリックすると、画面がいっぱいになり、コンテンツが表示されます。div のクラスを変更し、「spot」を削除して「grown」を追加するだけでこれを達成しました。それを成長させるための小さな CSS アニメーションがあります。これはうまくいきます。
問題は、この div 内に、現時点では単なるテキストである close_button があることです。これでクラスを元に戻したいです。つまり、grown と readd spot を削除します。クリックすると、これは行われません。DOM の読み込み時にこれらのクラスを持たない要素に関係していると思いますが、jQuery は初めてで、これを回避する方法がわかりません。
おそらくもっと賢明な方法があると思いますが、誰かが私を正しい方向に向けることができますか? とても感謝しています。代わりに toggleClass を使用してみましたが、役に立ちませんでした。
$( document ).ready(function() {
$(".clickable").click(function() {
$(this).addClass("grown");
$(this).removeClass("spot");
});
$(".close_button").click(function() {
alert (this);
$("#spot1").removeClass("grown");
$("#spot1").addClass("spot");
});
});
アップデート:
私は今このコードを使用しています、
$( document ).ready(function() {
$(document).on("click", ".close_button", function () {
alert ("oi");
$("#spot1").addClass("spot");
$("#spot1").removeClass("grown");
});
$(document).on("click", ".clickable", function () {
if ($(this).hasClass("spot")){
$(this).addClass("grown");
$(this).removeClass("spot");
}
});
});
奇妙なことに、close_button 関数はまだ「spot」を追加したり、「grown」を削除したりしませんが、他のクラスを追加し、他のクラスを削除します...おそらく両方の関数が同時にトリガーされていると思われるため、if 句を追加しました時間、お互いを元に戻しますが、違いはないようです