变量不会在jQuery函数中递增?

时间:2013-05-31 15:22:22

标签: javascript jquery function variables increment

当我遇到代码问题时,我只是做了最后一刻的接触:

$(document).ready(function() 
{
/* Declaring some variables to help with scrolling through my Portfolio */
var workArray = [];
var scrollPos = 1;

/* This makes the left scroll arrow disappear if it's 
at the start (scrollPos is less then or equal to 1) */
if (scrollPos <= 1) {
    $('#left_scroll').hide();
} else {
    $('#left_scroll').show();
}

/*This SHOULD decrement and increment values to the scrollPos variable
when the corresponding arrows are clicked*/ 
$('#left_scroll').click(function(){
    scrollPos--;
});
$('#right_scroll').click(function(){
    scrollPos++;
});

(left_scroll)被分配给我页面上的箭头键,该箭头键假设从值(scrollPos)中减去,该值表示左箭头图像或右箭头图像应该可见。

目前我将值scrollPos设置为1,因此左箭头键是不可见的,右箭头键是可见的,但由于某种原因,当单击其中任何一个时,它看起来不像任何值被更改为左箭头键仍然不可见。

任何人都可以看到我的代码有任何问题,希望你能提供帮助。 :d

  • 马丁

3 个答案:

答案 0 :(得分:2)

点击处理程序正在执行您告诉他们要执行的操作,即递增和递减。您没有告诉处理程序执行其他操作,例如某些hideshow

hideshow内部的逻辑放在处理程序函数中,以便在单击按钮时隐藏和显示。

答案 1 :(得分:1)

Working jsFiddle Demo

您必须在增加/减少后调用if语句。 为此做一个功能:

function checkScrollPos() {
    /* This makes the left scroll arrow disappear if it's 
    at the start (scrollPos is less then or equal to 1) */
    if (scrollPos <= 1) {
        $('#left_scroll').hide();
    } else {
        $('#left_scroll').show();
    }
}

click之后,请致电:

$('#left_scroll').click(function(){
    scrollPos--;
    checkScrollPos();
});
$('#right_scroll').click(function(){
    scrollPos++;
    checkScrollPos();
});

答案 2 :(得分:0)

您的代码:

if (scrollPos <= 1) {
    $('#left_scroll').hide();
} else {
    $('#left_scroll').show();
}

仅执行一次。如果您想在每次点击箭头时检查scrollPos值,请使用以下函数:

function hideOrShow(scrollPos) {    
    if (scrollPos <= 1) {
        $('#left_scroll').hide();
    } else {
        $('#left_scroll').show();
    }
}

$('#left_scroll').click(function(){
    scrollPos--;
    hideOrShow(scrollPos)
});
$('#right_scroll').click(function(){
    scrollPos++;
    hideOrShow(scrollPos)
});