time - Javascript - register how long user pressed a given button during whole visit -


i'm programming experiment in qualtrics , need create, javascript, variable tells me how long (total) participants held down button. pressing button display text participants , releasing make text disappear, tells me how time had read text. let's press button 3 times, first 30 seconds, second 10 seconds , third 2 seconds, code should store value 42.

what have far this:

addeventlistener("keydown", function(event) { if (event.keycode == 86)     document.getelementbyid("text").innerhtml = "text show";     var d1 = new date();     document.getelementbyid("div1").innerhtml = d1.gettime();   }); addeventlistener("keyup", function(event) { if (event.keycode == 86)     document.getelementbyid("text").innerhtml = "";     var d2 = new data();     var d1 = parsefloat(document.getelementbyid("div1"));     var diff = d2 - d1.gettime();     var old = parsefloat(document.getelementbyid("div2"));     var old = old + diff;     document.getelementbyid("div2").innerhtml = old;             qualtrics.surveyengine.setembeddeddata("readingtime", totaltime); }); 

i store values in divs because can't seem reuse values 1 event listener other (this because don't know enough javascript , scopes). oh, , last function qualtrics-specific function store value in database. anyway, can't work, when check variable in database empty. can spot i'm doing wrong?

i did few changes code:

  • added global variables
  • added few missing brackets
  • attached listeners window
  • removed multiple calls dom elements
  • created function each event listener
  • rounded elapsed time seconds

var d0; var d1;  var subtotal = 0; var total = 0;  var div1 = document.getelementbyid("div1"); var text = document.getelementbyid("text");  window.addeventlistener("keydown", dealwithkeydown, false); window.addeventlistener("keyup", dealwithkeyup, false);  function dealwithkeydown(event) {     if (event.keycode == 86) {          if (typeof d0 === 'undefined') {             d0 = new date();         }          d1 = new date();                 subtotal = math.round((d1.gettime() - d0.gettime()) / 1000);            div1.innerhtml = subtotal;         text.innerhtml = "text show";     } }  function dealwithkeyup(event) {     if (event.keycode == 86) {         total = total + subtotal;         text.innerhtml = "";         d0 = undefined;                qualtrics.surveyengine.setembeddeddata("readingtime", total);     } } 

Comments

Popular posts from this blog

php - Wordpress website dashboard page or post editor content is not showing but front end data is showing properly -

How to get the ip address of VM and use it to configure SSH connection dynamically in Ansible -

javascript - Get parameter of GET request -