我有一个有很多事件的div。我尝试了两件事:
1-使用条件执行切换的第二部分。它有效,但响应并不完美,有一秒钟的延迟。我在这里简化了案例:http://jsfiddle.net/T26vF/2/
2 - 然后我尝试了一个简单的切换。当我点击一个对象时,它可以正常工作。但问题是,当我在切换的第一部分时,我点击背景或其他对象并回到第一个对象,我必须点击两次,(第一次点击仍然执行第二部分的切换)。我在这里简化了案例:http://jsfiddle.net/T26vF/4/
$(function(){
// THIS
$(".arrodonit").toggle(
function(){ $(this).children("img").animate({"width":"411px","marginLeft": "-85px","marginTop": "-80px"}, 900);
$(this).siblings(".fons").fadeOut("slow");
},
function(){ $(this).children("img").animate({"width":"233px","marginLeft": "0px","marginTop": "0px"}, 900);
$(this).siblings(".fons").fadeIn("slow");
}
);
// NOT THIS
$(".arrodonit").click(function(e) {
e.stopPropagation();
$('.arrodonit').not(this).siblings(".fons").fadeIn("slow");
$('.arrodonit').not(this).children("img").stop().animate({ "width":"233px","marginLeft": "0px","marginTop": "0px",}, 900);
$(".mesInfo").fadeIn()
$(".info").fadeOut()
});
// DOCUMENT
$(document).click(function() {
$('.fons').fadeIn();
$('.arrodonit img').animate({ "width":"233px","marginLeft": "0px","marginTop": "0px"}, 900);
});
})
我问:
- 我的代码有什么问题?
- 如果我在第一种情况下作出有条件的话,为什么会有延迟呢?
- 为什么我必须在第二个例子中点击两次?
- 有更好的方法来做同样的行动吗?
答案 0 :(得分:0)
这只是一招,
如果您有一系列动画事件,请尝试使用stop().animate()
,这样可以减少延迟
希望这有帮助