我正在尝试做一些非常简单的事情。基本上我有一个可点击的 div '热点',当你点击它时,它会填满屏幕并显示一些内容。我通过简单地更改 div 的类、删除“spot”并添加“grown”来实现这一点,并且有一些 CSS 动画可以让它增长。这工作正常。
问题是,在这个 div 中有一个 close_button,目前它只是文本。我希望这可以将课程切换回来-即删除已增长和已阅读的点。单击时它不会执行此操作。我相信这与 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 子句,因为我认为这两个函数可能同时被触发时间,互相抵消,但似乎没有区别