Я понятия не имею, что я сделал. Идея состоит в том, чтобы анимировать элемент, который можно сдвинуть с позиции и отступить назад, когда щелкнул другой элемент. Я применил второе событие в обратном вызове исходной функции события.jQuery, оживить и оживить назад. Ошибка функции обратного вызова? : S
Но, несмотря на эту структуру, вторая функция события будет работать, хотя я не нажал второй элемент в функции обратного вызова.
Если вы не следуете, основная идея такова.
Нажмите -> slidein -> снаружи нажмите -> выскользнуть
$('#mobileList').click(function(){
$('#mobileMenu').css({'display':'block'}).animate({
'left':'30%'
},500,function(){
$('#body').click(function(){
$('#mobileMenu').animate({
'left':'100%'
},500,function(){$('#mobileMenu').css({'display':"none"});/* I tried return false; here, failed to solve problem*/});
});
});
});
Запуск CSS
nav#mobileMenu{display:none;width:70%;height:100%;background:#191820;color:#DCDCDC;position:fixed;top:0;left:100%;}
Как элементы структурированы.
<div id="body">
<a id="mobileList>☰</a>
<!-- content here -->
</div>
<nav id="mobileMenu">
<!-- content -->
</nav>
В первых двух попытках он отлично работает. В следующий раз, когда я приеду, он будет оживлять, а затем сразу же оживить. Я действительно не понимаю, почему, поскольку это функция обратного вызова? : S
Я думаю, это потому, что элемент #mobileList
находится внутри элемента #body
.
Ожидается ли еще вызов? Могу ли я прекратить поиски этого события?
Должен ли я использовать queue()
для запуска слайда и выдвижения?
Вы гнездятся обработчики кликов, плохая идея! –
Я так и думал: p есть ли другой метод, который вы могли бы порекомендовать? – sourRaspberri
Разве ответ Рори не работает для вас? –