Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery alternative for document.activeElement

Tags:

What I wanted to do is figure out whenever the user is engaged with an INPUT or TEXTAREA element and set a variable flag to true... and set that flag to false immediately after the user is no longer engaged with them (ie. they've clicked out of the INPUT/TEXTAREA elements).

I used jQuery's docuemnt.ready function to add the onclick attribute to my body element and assign it to my getActive() function.

The code for the getActive() function is as follows:

function getActive()
{
  activeObj = document.activeElement;
  var inFocus = false;
  if (activeObj.tagName == "INPUT" || activeObj.tagName == "TEXTAREA")
  {
     inFocus = true;
  }
}

I'd really like to keep by project withing the jQuery framework, but can't seem to find a way of accomplishing the same logic above using JUST jQuery syntax.

like image 711
Brownbay Avatar asked Jul 25 '10 06:07

Brownbay


2 Answers

You want the focus and blur event handlers. For example...

var inFocus = false;
$('input, textarea').focus(function() {
  inFocus = true;
});

$('input, textarea').blur(function() {
  inFocus = false;
});

I'm pretty sure that a comma will get you input OR textarea, but you get the idea if that doesn't pan out

like image 73
Rob Avatar answered Oct 04 '22 03:10

Rob


function getActive(){
   return $(document.activeElement).is('input') || $(document.activeElement).is('textarea');
}
like image 27
user1933288 Avatar answered Oct 04 '22 03:10

user1933288