Я пытаюсь сделать что-то очень простое. В принципе, у меня есть интерактивное "горячее пятно", когда вы нажимаете кнопку, чтобы заполнить экран и отобразить некоторый контент. Я достиг этого, просто изменив класс div, удалив "пятно" и добавив "выросли", и там немного анимации 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");
});
});
UPDATE:
Теперь я использую этот код,
$( 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 по-прежнему не добавит "пятно" или не удалит "выросли", хотя добавит какие-либо другие классы, и он удалит другие классы... Я добавил предложение if, потому что я думал, что, возможно, обе функции запускались в то же время, отменяя друг друга, но, похоже, не имеет значения