Skip to content

Commit

Permalink
toggleIdleState
Browse files Browse the repository at this point in the history
removed chrome/firefox bug fixes, moved to $.data, stop storing state on
object, pass parameters on raised event
  • Loading branch information
thorst committed Mar 10, 2014
1 parent 343a32f commit 118bb11
Showing 1 changed file with 9 additions and 24 deletions.
33 changes: 9 additions & 24 deletions src/idle-timer.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,34 +63,19 @@ $.idleTimer = function( firstParam, elem ) {
*/
toggleIdleState = function( myelem ) {

// curse you, mozilla setTimeout lateness bug!
if ( typeof myelem === "number" ) {
myelem = undefined;
}

var obj = $.data( myelem || elem, "idleTimerObj" );
var obj = $.data(elem, "idleTimerObj") || {};

//toggle the state
obj.idle = !obj.idle;
// toggle the state
obj.idle = !obj.idle;

// reset timeout
var elapsed = ( +new Date() ) - obj.olddate;
obj.olddate = +new Date();
// store toggle state date time
obj.olddate = +new Date();

// handle Chrome always triggering idle after js alert or comfirm popup
if ( obj.idle && ( elapsed < opts.timeout ) ) {
obj.idle = false;
clearTimeout( $.idleTimer.tId );
if ( opts.enabled ) {
$.idleTimer.tId = setTimeout( toggleIdleState, opts.timeout );
}
return;
}
// create a custom event, with state and name space
var event = $.Event((obj.idle ? "idle" : "active") + ".idleTimer");

// create a custom event, but first, store the new state on the element
// and then append that string to a namespace
var event = $.Event( $.data( elem, "idleTimer", obj.idle ? "idle" : "active" ) + ".idleTimer" );
$( elem ).trigger( event );
// trigger event on object with elem and copy of obj
$(elem).trigger(event, [elem, $.extend({}, obj), e]);
},

/**
Expand Down

0 comments on commit 118bb11

Please sign in to comment.