JavaScript变量未定义错误?

Mar*_*eon 2 javascript variables jquery

我们有三个JS文件:

<script type="text/javascript" src="js/pm.init.js"></script> 
<script type="text/javascript" src="js/pm.util.func.js"></script> 
<script type="text/javascript" src="js/pm.nav.js"></script> 
Run Code Online (Sandbox Code Playgroud)

在init.js中我们有:

$(function(){
    var dirty = false;
})
Run Code Online (Sandbox Code Playgroud)

在util.func.js中我们有:

function dirtyCheck(actionFunction) {
    if (dirty == false) {
        actionFunction();
        return;
    }
    ...
Run Code Online (Sandbox Code Playgroud)

在nav.js中我们有:

$(function(){
    $('#btn-nav-refresh').click(function() {
        dirtyCheck(function() { doRefresh(); });
    });
    ...
Run Code Online (Sandbox Code Playgroud)

现在,当btn-nav-refresh用户单击按钮后触发该功能时,我们会收到dirty is not defined错误消息.为什么是这样??

Poi*_*nty 5

我觉得自己很脏,告诉你如何将你的"脏"变量变成一个脏的全局变量,但它是这样的:

$(function(){
  window.dirty = false;
})
Run Code Online (Sandbox Code Playgroud)

但是,你应该找到一个更好的方法来做到这一点.这是一个想法:

$(function() {
  $('body').data('dirty', false);
});
Run Code Online (Sandbox Code Playgroud)

然后:

// ...
if (${'body').data('dirty')) takeBath();
Run Code Online (Sandbox Code Playgroud)