简体   繁体   中英

Global variable isn't holding?

This should be a really easy "derp" question, but here it is:

I'm trying to set up a global variable in a JS file so that I can control when an action triggers. In my case, I want okBoxCall to only be called if firstTime is true. I have firstTime set to true initially, then I change it to false afterwards. My code is NOT working as it should however, as it still calls up okBoxCall more than once.

var Dialog;
var HUDWindow;
var smartPhone;
var firstTime = true;


$(document).ready(function(){
   smartPhone = new SmartPhone();
   initDialog();
   initHUDWindow(); 

   if(firstTime == true)
   {
       okBoxCall("Tutorial", "Welcome to McLarin Energy!");
       firstTime = false;
   }
});

What am I doing wrong? Obviously firstTime is not holding its change to false...

EDIT Forgot to mention that this is for a 3D game, not web pages. Cookies are not used.

Your function should only be called once due to $(document).ready(...). So, I'm guessing you're reloading the page to get the alert to display again and again...

Maybe you should be looking at using cookies, not just a plain old JS variable..?

I'm guessing you want to check whether this is the first time the user opens a page and open a tutorial if it is?

It is not possible the way you want to do it. Every time your page is loaded your script is evaluated again. So this means a variable firstTime is created and it is set to true . What you need is some persistent storage on the client to store whether it is the first time or not. You will need to set a cookie or call the localStorage API if you don't bother disregarding older browsers.

What is okBoxCall doing? If you have any error in okBoxCall firstTime = false will not be executed. Set the value before you call okBoxCall.

$(document).ready(function(){
   smartPhone = new SmartPhone();
   initDialog();
   initHUDWindow(); 

   if(firstTime == true)
   {
       firstTime = false;
       okBoxCall("Tutorial", "Welcome to McLarin Energy!");

   }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM