Я пытаюсь изучить некоторые jquery, и я хочу сделать простой снимок, который скрыт в начале, но затем появляется, когда вы нажимаете какой-то текст, но затем скрывается, когда вы нажмете его снова. Вот код:jQuery меню не скрывается при втором нажатии
Basic HTML:
<h1 class="Menu">Menu</h1>
<div id="submenu">
<ul>
<a href="#"><li>Menu 1</li></a>
<a href="#"><li>Menu 2</li></a>
<a href="#"><li>Menu 3</li></a>
<a href="#"><li>Menu 4</li></a>
<a href="#"><li>Menu 5</li></a>
<a href="#"><li>Menu 6</li></a>
</ul>
<div>
JQuery:
$(document).ready(function() {
$("#submenu").hide();
});
$(".Menu").click(function() {
$("#submenu").show("slow");
$(".Menu").text("Close Menu");
$(".Menu").removeClass("Menu").addClass("CloseMenu");
});
$(".CloseMenu").click(function() {
$("#submenu").hide();
$(".CloseMenu").text("Menu");
$(".CloseMenu").removeClass("CloseMenu").addClass("Menu");
});
Является ли это потому, что класс не был зарегистрирован в DOM на странице загрузки, так что он не знает что он ищет? Also here is the JS Fiddle I was doing it in.
Вашего HTML является недействительным. – j08691
Когда вы вызываете функцию 'click', AT THAT TIME, jquery добавляет обработчик кликов к элементам, которые соответствуют вашему селектору. Это означает, что если вы динамически меняете элемент позже, чтобы соответствовать одному и тому же селектору, обработчик кликов не будет применяться задним числом. Взгляните на http://stackoverflow.com/questions/1359018/in-jquery-how-to-attach-events-to-dynamic-html-elements информацию о том, как это сделать для динамически изменяющихся элементов. –
Удивительный! Спасибо Баки за этот ресурс! –