Im пытается разобрать боковое левое меню, основанное на примере, который я вижу в google, но когда я нажимаю в своем "Меню", чтобы открыть боковое меню, меню не открывается.
Это мой html, где у меня есть div id = "menu", это мое меню, которое я хочу показать в своем боковом меню слева.
У меня также есть div id = "content", который является div, который содержит весь мой контент, я хочу подтолкнуть этот контент к праву. Когда я нажимаю в своем "Меню", чтобы открыть меню левой стороны.
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<div id="menu">
<ul>
<li><a href="#">Menu Item 1</a></li>
<li><a href="#">Menu Item 2</a></li>
<li><a href="#">Menu Item 3</a></li>
</ul>
</div>
<div id="content">
<div id="menubar">
<div id="open_menu">
Menu
</div>
</div>
</div>
Ниже находится jQuery, который открывает мое боковое левое меню с помощью переключателя медленного elffect и меняет текст моего меню на Menu for Close, когда меню открыто.
$('#open_menu').toggle(
function() {
$('#content').animate({ left: 250 }, 'slow', function() {
$('#open_menu').html('Close');
});
},
function() {
$('#content').animate({ left: 0 }, 'slow', function() {
$('#open_menu').html('Menu');
});
}
);
Вы видите, где может быть проблема?
Моя проблема с проблемой: http://jsfiddle.net/3Gezv/
Это не то, что переключается для... проверьте документацию jQuery: http://api.jquery.com/toggle/
Просто используйте событие click и отслеживайте статус самостоятельно так или иначе. Вот рабочий пример, основанный на вашей скрипке:
$('#open_menu').click(function(){
if ($(this).hasClass('toggled_on')) {
$(this).removeClass('toggled_on');
$('#content').animate({ left: 0 }, 'slow', function() {
$('#open_menu').html('Menu');
});
} else {
$(this).addClass('toggled_on');
$('#content').animate({ left: 250 }, 'slow', function() {
$('#open_menu').html('Close');
});
}
});
Это использует класс, который является субоптимальным, поэтому, если вам это не нужно для чего-то другого, просто используйте вместо него переменную.
.toggle()
переключает элемент, который вы вызываете, хотя (именно поэтому кнопка исчезла в вашей оригинальной скрипке), поэтому вы можете сделать что-то вроде этого:$('#open_menu').click(function(){$("#content").toggle()})
(который переключает содержимое, а не меню)