无法调用嵌套函数

时间:2017-01-03 14:53:19

标签: javascript jquery

正如问题所说,我无法调用嵌套函数! 这是JavaScript:

var n;
var i = 0;

$("#men").click(function(){
    $("#reshead").slideToggle("300");
});

$("#nxt").click(function() {
    pic(i+=n);
});

$(window).on("scroll", function() {

  if($(window).scrollTop() > 50) {
    $("#header").addClass("scroll");
  } else {
    $("#header").removeClass("scroll");
  }
});

function pic(n) {
    if(n=1){
        dx1();
    } else if (n==2) {
        dx2();
    } else if (n=3){
        dx3();
    } else{
        n=0;
    }   
}

function dx1() {
    document.getElementById("picb").style.backgroundImage='url("src/black-belt.png")';
}

function dx2() {
    document.getElementById("picb").style.cssText+='background-image:url(src/kut.png);background-repeat:no-repeat;    width:auto;height:auto;';
}

function dx3() {
    document.getElementById("picb").style.cssText+='background-image:url(src/slmb.jpg);background-repeat:no-repeat;    width:auto;height:auto;';
}

我尽力了。什么都没发生。该代码用于幻灯片放映,其中背景图像单独更改。 我首先在jQuery中尝试过但它并没有发生。所以我尝试使用简单的JavaScript,它仍然无法正常工作。

3 个答案:

答案 0 :(得分:3)

if(n=1)

else if(n=3)

是分配而非比较运营商...

答案 1 :(得分:0)

您要为n分配一个值,以便它始终进入第一个if。尝试使用==运算符:

function pic(n) {
    if(n==1){
        dx1();
    }
    else if(n==2){
        dx2();
    }
    else if(n==3){
        dx3();
    }
    else{
        n=0;
    }   
}

答案 2 :(得分:0)

请注意,即使使用语法修复,尝试将undefined添加到0时仍会遇到问题。

pic(i+=n);

第一次调用时i等于0n等于undefined。之后,i将等于NaNn将等于0