我刚开始学习JavaScript和jQuery,并得到了我的第一个问题,这让我很头痛。我一直在寻找几个小时来解决这个问题,但没有任何解决方案能够奏效。jQuery - 防止相同的点击功能一次运行多次
我的问题是:我做了一个“旋转木马”网站,其中内容向左或向右滑动,如果点击菜单链接。
一切工作正常,但如果你点击功能的动画完成之前再次点击另一个menulink,内容滑动,并没有在正确的位置。
我tryed承诺()()完成,标志,回调等,但没有为我工作:(也许我之所以这样做是错的..
我在寻找一个解决方案,阻止这个点击功能,直到它完成,或者更好地使这个功能的队列,在另一个,但不是在同一时间运行。 ,但就像我说的,我今天刚开始学习这些东西,而且我还不熟悉语法等等。
var gotoPage = function(pos) {
if(pos == 'home') {
$('li#home').css({"opacity" : 1});
$('li#home').css({"left" : "1700px"});
$('li#home').animate({"left" : "0px"}, speed, 'easeInOutQuint');
$('li#news').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#news').animate({"opacity" : 0}, 0);
$('li#galery').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#galery').animate({"opacity" : 0}, 0);
} else if (pos == 'news') {
$('li#news').css({"opacity" : 1});
$('li#news').css({"left" : "1700px"});
$('li#news').animate({"left" : "0px"}, speed, 'easeInOutQuint');
$('li#home').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#home').animate({"opacity" : 0}, 0);
$('li#galery').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#galery').animate({"opacity" : 0}, 0);
} else if (pos == 'galery') {
$('li#galery').css({"opacity" : 1});
$('li#galery').css({"left" : "1700px"});
$('li#galery').animate({"left" : "0px"}, speed, 'easeInOutQuint');
$('li#news').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#news').animate({"opacity" : 0}, 0);
$('li#home').animate({"left" : "-1700px"}, speed, 'easeInOutQuint');
$('li#home').animate({"opacity" : 0}, 0);
}
}
$(document).ready(function(){
hideAll();
autoSelect();
$('#home').click(function(){
gotoPage(posHome);
});
$('#news').click(function(){
gotoPage(posNews);
});
$('#galery').click(function(){
gotoPage(posGalery);
});
});
你能帮我吗?
没有答案,但你应该知道的关于jQuery的第一件事是链接。 '$(...)'函数很慢;使用'$('li#home')。css({“opacity”:1})。css({“left”:“1700px”});'。或者更好的是,'$('li#home')。css({“opacity”:1,“left”:“1700px”});'。后者对“有生命的”呼叫尤其如此。 – Dave 2013-03-27 01:20:46