在document.ready javascript中更改变量

时间:2014-07-16 07:59:43

标签: javascript jquery javascript-events

我的脚本出了什么问题。单击功能后,它不会更改变量d。我也尝试过window.d但仍然一样。

var d = undefined;
$(document).ready(function(){

    if ($(window).scrollTop() !== 460) {
         d = $(window).scrollTop();
    } else {
        d = 459;
    }

    if (d < 459) {

        $('#drop1, #drop2, #drop3').on('click',function(){

            $.scrollTo(460, 900, { easing: 'easeOutExpo' });
            $(document).scroll();
            d = 500;
        });    

    } else {
        console.log(window.d);
    }
});

1 个答案:

答案 0 :(得分:0)

基于OP的评论&#34; onclick功能应该仅在d小于459&#34;时才有效,我想知道这是否是他正在寻找的:

var d = undefined;
$(document).ready(function(){

    if ($(window).scrollTop() !== 460) {
         d = $(window).scrollTop();
    } else {
        d = 459;
    }

    $('#drop1, #drop2, #drop3').on('click',function() {
       // move d<459 test inside click event
       // the click event will always be fired, but the 
       // scroll effect will only occur if d<459
       if (d < 459) {
            $.scrollTo(460, 900, { easing: 'easeOutExpo' });
            $(document).scroll();
            d = 500;
        };  
        console.log(d);  // always tell me d for debugging
    }};
});

当然,click事件只能触发一次滚动效果;然后设置d = 500,除非d在其他地方再次重置,(d < 459)将永远不再为真。