Как зациклить переменные в Jquery?

#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 /