全球变量与jsFiddle

时间:2013-09-16 19:06:08

标签: javascript jquery jsfiddle

在jsFiddle环境中,我希望创建一个循环,以随机顺序显示数字1到10,没有重复。

jsFiddle here

除此之外,在jsFiddle环境中遇到全局变量有困难。

很感激:

  1. 解释jsFiddle中的全局变量
  2. 让我的代码工作(期望的目标:以随机顺序打印数字1到10,通过循环)
  3. 谢谢

    对于后代,这里是来自jsFiddle的代码:

    HTML:

    <div id="response"></div>
    <input type="button" id="mybutt" value="Get Next" />
    

    的javascript / jQuery的:

    var cnt;
    var window.arrDone = [];
    
    function nextQues() {
        return Math.floor(Math.random()*3) + 2;
    }
    
    $('#mybutt').click(function() {
        cnt++;
        console.log('Count is now: ' + cnt);
        if (cnt < 10) {
            nn = nextQues();
            console.log('Testing: ' + nn);
            if (window.arrDone.indexOf(nn) > -1) {
                console.log('Already Seen: ' + nn);
            }else{
                console.log('FOUND NEW: ' + nn);
                window.arrDone.push(nn);
            }
            $('#mybutt').trigger('click');
        }
    });
    

    对于后人:

    任何在研究自己的解决方案时遇到这个问题的人都应该查看这个相关的SO帖子:

    Is javascript namespace polluted?

    • 确保您阅读Joe Enos的答案,并在
    • 下面发表评论

1 个答案:

答案 0 :(得分:3)

试试这个:

var cnt = 0;
var window = {};
window.arrDone = [];

演示here

jsfiddle中的全局与网站中的全局相同。虽然最好在jsfiddle的左上角菜单中使用no wrap,但拥有自己的.ready()功能。否则,它会将您的代码包装在您网站上没有的onload函数中。