【问题标题】:JSLint errors: Undeclared 'Image', Undeclared 'Document', out of scopeJSLint 错误:未声明的“图像”、未声明的“文档”、超出范围
【发布时间】:2016-02-05 14:04:12
【问题描述】:

凭借非常基本的 javascript 知识,我制作了一个简单的幻灯片(代码如下)。它可以工作,但 JSLint 显示以下错误:

  • 未声明的“图片” slideimages[0] = new Image();
  • 未声明的 'setInterval' setInterval(myCounter, 50);
  • 'myCounter' 超出范围 setInterval(myCounter, 50);
  • 未声明的'文档' document.getElementById('slide').src =slideimages[step].src;

我怎样才能克服这些问题,例如声明那些元素?

var slideimages = [];

slideimages[0] = new Image();
slideimages[0].src = "http://placehold.it/350x150?text=Welcome";
slideimages[1] = new Image();
slideimages[1].src = "imgs/slide_1.png";
slideimages[2] = new Image();
slideimages[2].src = "imgs/slide_2.png";


var step = 0;

var c = 0;
var a = 0;
setInterval(myCounter, 50);
function myCounter() {

    'use strict';

document.getElementById('slide').src = slideimages[step].src;

    if ((c >= 0) && (c < 40)) {
        c += 1;
        a = c;
        step = 1;
document.getElementById("demo").innerHTML = a / 100;
document.getElementById("slide").style.opacity = a / 40;

    } else if ((c >= 40) && (c < 80)) {

        c += 1;
        a = c;
document.getElementById("demo").innerHTML = a / 100;
document.getElementById("slide").style.opacity = 1;

    } else if ((c >= 80) && (c < 100)) {

        c += 1;
        a = c;
document.getElementById("demo").innerHTML = 1 - ((a - 80) / 20);
document.getElementById("slide").style.opacity = 1 - ((a - 80) / 20);

    } else if ((c >= 100) && (c < 140)) {

        c += 1;
        a = c;
        step = 2;
document.getElementById("demo").innerHTML = a / 100;
document.getElementById("slide").style.opacity = (a - 100) / 40;

    } else if ((c >= 140) && (c < 180)) {

        c += 1;
        a = c;
document.getElementById("demo").innerHTML = a / 100;
document.getElementById("slide").style.opacity = 1;

    } else if ((c >= 180) && (c < 200)) {

        c += 1;
        a = c;
document.getElementById("demo").innerHTML = 1 - ((a - 180) / 20);
document.getElementById("slide").style.opacity = 1 - ((a - 180) / 20);

    } else {
        c = 0;
    }
}

【问题讨论】:

    标签: javascript jslint


    【解决方案1】:

    默认情况下,LSLint 不允许浏览器相关的东西。因此,

    Undeclared 'Image' slideimages[0] = new Image();
    Undeclared 'setInterval' setInterval(myCounter, 50);
    Undeclared 'document' document.getElementById('slide').src =slideimages[step].src;
    

    查看 jslint 选项,特别是 assume browser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 2016-07-10
      相关资源
      最近更新 更多