0

ユーザーがimgIconをクリックしたときにtoggleTutorial関数を切り替えようとしていますが、関数をトリガーすることさえできません。showTutorial 変数をグローバル変数にする必要がありますが、getScript 関数の下の if ステートメントがトリガーされないようです。ここにいる誰かが私を助けることができますか?

ありがとう

$(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、コールバックにヒットすると false になります。

次のように変更してみてください。

$('.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 に答える