jQuery使动画只在单击时发生一次

jQuery使动画只在单击时发生一次,jquery,html,jquery-animate,Jquery,Html,Jquery Animate,我有一个简单的jQuery动画代码,当用户单击一个链接时,我使用它将div从左向右移动,然后当用户单击另一个链接时,从右向左移动 我的问题是,如果用户一直单击同一链接,div就会一直向左移动。我希望他们只能点击它一次,如果他们再次点击它,链接什么也不会做 这是我的密码: $(document).ready(function(){ $('a.facebook').click(function() { $('#social_holder').animate({'left' : '-=420p

我有一个简单的jQuery动画代码,当用户单击一个链接时,我使用它将div从左向右移动,然后当用户单击另一个链接时,从右向左移动

我的问题是,如果用户一直单击同一链接,div就会一直向左移动。我希望他们只能点击它一次,如果他们再次点击它,链接什么也不会做

这是我的密码:

$(document).ready(function(){
$('a.facebook').click(function() {
    $('#social_holder').animate({'left' : '-=420px'});
});
$('a.twitter').click(function() {
    $('#social_holder').stop().animate({'left' : '+=420px'});
});
});
我正在研究的示例可以在这里找到:

感谢

对于任何只需处理一次的事件,请使用

$('a.facebook').one('click', function() {
    $('#social_holder').animate({'left' : '420px'});
});
如果问题是要求在单击按钮后重新设置动画,则需要重置left属性,而不是尝试递增/递减它

$(document).ready(function(){
    $('a.facebook').click(function() {
        $('#social_holder').animate({'left' : '0'});
    });
    $('a.twitter').click(function() {
        $('#social_holder').animate({'left' : '420px'});
    });
});
而不是使用“+=420”和“-=420”,而是使用绝对位置

$(document).ready(function(){
$('a.facebook').click(function() {
    $('#social_holder').animate({'left' : '0'});
});
$('a.twitter').click(function() {
    $('#social_holder').stop().animate({'left' : '420px'});
});
});

这也可以防止div被放置在中间。

如果用户交替单击链接,他们应该能够前后移动它,还是说每个链接只能工作一次?是的,对不起,我的意思是,用户应该能够交替使用链接,以将其向后移动四分之一。我如何使其在单击其他按钮后再次单击?我希望动画不止发生一次,但我不希望用户能够在同一方向上移动div两次。这非常好,谢谢。将我的#社会#持有者div位置设置为绝对。将左边的数字改为-420px和0px。谢谢