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");
});
答案 0 :(得分:0)
homeOpen
始终设置为false,因此永远不会满足您的if (homeOpen)
条件。