jQuery чередование второго щелчка не работает?
http://jsfiddle.net/motocomdigital/uTV5k/18/
Я обновил, используя вместо этого переключение по щелчку - хотя все еще не могу получить плавные чередования.
У меня есть смесь JavaScript и JQuery здесь.
Я пытаюсь получить элемент, поэтому при нажатии на него запускается анимация (открыть). И по второму щелчку анимация запускается до начальной точки (закрыть).
Но по некоторым причинам я не могу заставить чередование второго щелчка работать. Может кто-нибудь посоветовать, что я делаю не так? Спасибо
$('.home-module').toggle
это бит у меня проблемы.
Смотри скрипт ниже...
$(window).load(function(){
$(window).bind("orientationchange resize", function(e) {
$('.home-module').each(function() {
var homeModule = $(this).height(),
homeTitle = $(this).find('.home-title-button').outerHeight(),
homeStart = homeModule - homeTitle,
homeOpen = false;
$(this).find('.home-title').css("top", homeStart + "px");
$('.home-module').toggle(
function() {
// first alternation
$(this).find('.home-title').animate({ top: homeStart + "px" });
},
function() {
// second alternation
$(this).find('.home-title').animate({ top: 0 + "px" });
}
);
});
}).trigger("resize");
});
Кажется, что это действительно не отвечает на анимацию при нажатии, а второй щелчок / чередование действительно задерживается и делает странные вещи?
Спасибо
Мой оригинальный код...
$(window).load(function(){
$(window).bind("orientationchange resize", function(e) {
$('.home-module').each(function() {
var homeModule = $(this).height(),
homeTitle = $(this).find('.home-title-button').outerHeight(),
homeStart = homeModule - homeTitle,
homeOpen = true;
$(this).find('.home-title').css("top", homeStart + "px");
$('.home-module').on('click', function () {
if (homeOpen) {
$(this).find('.home-title').animate({ top: homeStart + "px" });
homeOpen = false;
} else {
$(this).find('.home-title').animate({ top: 0 + "px" });
homeOpen = true;
}
});
});
}).trigger("resize");
});
1 ответ
homeOpen
всегда установлен в ложь, так что ваш if (homeOpen)
состояние никогда не выполняется.