谁都不许动我的砖 2019-07-05 21:26 采纳率: 0%
浏览 518

关于js全局变量无法定义的问题

我主要想实现以下类似功能:通过点击导航栏,下方div内容改变。图片说明图片说明

一开始这串代码测试就会出现变量未定义错误,但是如果多点击几次导航栏一直调用此函数的时候,变量未定义错误又不提示了,并且函数功能正常了。这是为什么?

图片说明

以下为我的导航栏部分代码(由于一直排版有问题,故使用照片,见谅)
图片说明

以下为我需要修改的div部分代码
图片说明

以下为我的所有js代码

function disper1(){
    div1 = document.getElementById("get1");
    div2 = document.getElementById("get2");
    div3 = document.getElementById("get3");
    div4 = document.getElementById("get4");
    div5 = document.getElementById("get5");
    div6 = document.getElementById("get6");
    div1.style.display="inline";
    div2.style.display="none";
    div3.style.display="none";
    div4.style.display="none";
    div5.style.display="none";
    div6.style.display="none";
}

function disper2(){
    div1.style.display="none";
    div2.style.display="inline";
    div3.style.display="none";
    div4.style.display="none";
    div5.style.display="none";
    div6.style.display="none";
}

function disper3(){
    div3.style.display="inline";
    div2.style.display="none";
    div1.style.display="none";
    div4.style.display="none";
    div5.style.display="none";
    div6.style.display="none";
}

function disper4(){
    div4.style.display="inline";
    div2.style.display="none";
    div3.style.display="none";
    div1.style.display="none";
    div5.style.display="none";
    div6.style.display="none";
}

function disper5(){
    div5.style.display="inline";
    div2.style.display="none";
    div3.style.display="none";
    div4.style.display="none";
    div1.style.display="none";
    div6.style.display="none";
}

function disper6(){
    // var div1 = document.getElementById("get1");
    // var div2 = document.getElementById("get2");
    // var div3 = document.getElementById("get3");
    // var div4 = document.getElementById("get4");
    // var div5 = document.getElementById("get5");
    // var div6 = document.getElementById("get6");
    div6.style.display="inline";
    div2.style.display="none";
    div3.style.display="none";
    div4.style.display="none";
    div5.style.display="none";
    div1.style.display="none";
}



  • 写回答

3条回答

  • Json-Huang 2019-07-05 22:26
    关注

    函数的作用域的问题,公共使用的变量一般是在函数外定义

        div1 = document.getElementById("get1");
        div2 = document.getElementById("get2");
        div3 = document.getElementById("get3");
        div4 = document.getElementById("get4");
        div5 = document.getElementById("get5");
        div6 = document.getElementById("get6");
            从disper1()移除放到所有函数的上面,不然其他函数获取不到
    
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?