#jquery #variables #loops #each
#jquery #переменные #циклы #каждый
Вопрос:
Скажем position
, начинается с 0
, c.width
равно 700
. После того, как я #button
дважды нажму, анимация должна перестать работать. Но этого не произошло. Я думаю, это потому, что значения моих переменных остаются неизменными после каждого нажатия #button
.
Как мне зациклить переменные, чтобы они обновляли значение каждый раз, когда я нажимаю #button
? (Значение position
должно меняться каждый раз, когда я нажимаю #button
, но я не знаю, как …)
<script type="text/javascript">
$(document).ready(function(){
$('#button').click(function(){
var c=$('#content');
var position=c.position();
var w=c.width();
var status=w - position.left;
if(status>500){
c.stop().animate({left:position.left - 100},300)};
var position=c.position();
});
})
</script>
Комментарии:
1. Этот 2-й
var position=c.position();
является избыточным.
Ответ №1:
Согласно вашей математике, status
не только всегда будет больше 500, но и будет увеличиваться.
Click -> 500
Click -> 700
Click -> 900
Click -> 1100
Вы можете изменить свою математику следующим образом:
if (status < 900) {
c.stop().animate({
left: position.left - 100
}, 300)
};
Вот демонстрация: http://jsfiddle.net/qbLd2 /