【发布时间】:2013-09-29 23:09:45
【问题描述】:
我正在尝试做一些非常简单的事情。基本上我有一个可点击的 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 子句,因为我认为这两个函数可能都被触发了同时,相互撤销,但似乎没有区别
【问题讨论】:
-
你能给我们看看你的html吗?使用此代码,您可以在 .close_button 元素上添加和删除类。
-
-
我看到了一个相同的属性。当我交换我的 "$(this).removeClass("spot");" 版本时对于 "$(this).removeAttr("class");"它会删除除现场之外的所有课程 - 真气。
-
是否有其他函数可以将类添加或分配给这些元素或包含它们的元素范围?
标签: jquery dom addclass removeclass toggleclass