使用JSFiddle中的代码发出问题

时间:2014-06-16 00:25:03

标签: javascript jquery cookies

有没有人知道为什么我的代码在JSFiddle上正常工作,但在我使用网站上的代码时却没有?

以下是JSFiddle

在我的网站上,我在标题中包含以下链接:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

1 个答案:

答案 0 :(得分:1)

正如@helderdarocha指出的那样,你的jsFiddle设置为运行onLoad。这意味着jsFiddle会自动将所有JS代码包装在window.ready()事件中。

JSFiddle中有几个选项

  • 的onLoad
  • onDomReady
  • 没有包裹(头部)
  • 没有包裹(在体内)

根据您选择的选项,JSFiddle以不同的方式生成您的代码。

例如,使用 onLoad 会生成以下源代码:

$(window).load(function() {
    function TermsAndConditions() {
        days = 30;
        myDate = new Date();
        myDate.setTime(myDate.getTime() + (days * 24 * 60 * 60 * 1000));
        document.cookie = 'TermsAndConditions=Accepted; expires=' + myDate.toGMTString();
    }

    var cookie = document.cookie.split(';')
    .map(function(x) {
        return x.trim().split('=');
    })
    .filter(function(x) {
        return x[0] === 'TermsAndConditions';
    })
    .pop();

    if (cookie && cookie[1] === 'Accepted') {
        $("#terms-and-conditions").hide();
    }

    $('.accept-button a').on('click', function() {
        TermsAndConditions(); // set cookie
        $("#terms-and-conditions").hide(); // hide element
        return false;
    });
});