0

当用户单击 imgIcon 时,我试图切换 toggleTutorial 功能,但是,我什至无法触发该功能。我需要我的 showTutorial 变量是全局变量,但似乎 getScript 函数下的语句没有触发。这里有人可以帮助我吗?

谢谢

$(function() {
    var spreadsheet = ''
    var showTutorial = true;
    $('.helpImgIcon').click(function() {
        $.getScript('inc/tutorial.js', function() {
            if (showTutorial) {
                toggleTutorial(showTutorial);
            }
        });
        showTutorial = false;
        return false;
    });
    $('body').click(function() {
        $('.js-tutorialTooltips').remove();
        $('.helpImg').remove();
        showTutorial = true;
    })
})​
4

2 回答 2

6

$.getScript是异步的,所以showTutorial当它遇到回调时会是假的。

尝试将其更改为:

$('.helpImgIcon').click(function() {
    $.getScript('inc/tutorial.js', function() {
        if (showTutorial) {
            toggleTutorial(showTutorial);
            showTutorial = false;
        }
    });
    return false;
});
于 2012-08-20T16:22:37.717 回答
0

多亏了 DOM,JavaScript 可能会遇到一些可怕的命名空间问题。我几乎总是随时命名我的变量,即

window.namespace = {}; //Object Literal for namespace
window.namespace.showTutorial = true;
于 2012-08-20T16:23:37.157 回答