2014-02-19 155 views
1
$('document').ready(function() { 
    $('.button').click(function() { 
     $('img').animate({left: "+80px"}, 2000); 
    }); 
}); 

所以,我是一个jQuery和东西的新手。我想要做的就是每次单击按钮时都会将图像移到右侧。当我运行它时,它首次运行,但是当我再次单击该按钮时,它会保持不动。如何多次触发'.click'事件?

我想知道如何多次触发.click事件。 PS:如果值得了解,我在这里提到的按钮实际上是<div>。我无法让它与<button>一起工作。

+0

请'$(文件)'不'$( '文件')' –

+0

这每次都会开火,但你的.animate可能总是做同样的事情? – Konerak

+1

哦!我想我现在意识到了!我的旧代码正在移动到某个位置,而不是将它移动到右侧。多谢你们! – user3327444

回答

5

尝试+=

$('img').animate({left: "+=80px"}, 2000); 
0
$(document).ready(function() { 
    $('.button').unbind('click').click(function() { 
     $('img').animate({left: "+80px"}, 2000); 
     return false; 
    }); 
}); 

我必须工作。

+0

这个的目的是什么?我的意思是这不会解决OP的问题 –

+0

@ A.Wolff作为问题的作者说,他的代码只在第一时间有效。所以当我们在每次点击后返回false时,我们可以一次又一次地做到这一点 – user2167382

+0

“所以当我们在每次点击后返回false时,我们可以一次又一次地做到这一点”嗯,我不明白为什么?!返回false将停止传播并阻止默认行为,就是这样 –

1

尝试事件:

var doc = $(document); 
doc.ready(function() { 
    doc.on('click', '.button', function() { 
     var imgElem = $('img'); 
     var imgLeft = parseInt(imgElem.css('left')); 
     var distance = 80; 
     var newDistance = imgLeft + distance; 
     $('img').animate({left: newDistance+'px'}, 2000); 
    }); 
}); 

编辑:我 “回忆” 动画是如何工作后改变了代码