ruturaj
ruturaj

Reputation: 3453

trigger body click with jQuery

I'm unable to trigger a click on the body tag using jQuery using this:

$('body').click();

Even this fails:

$('body').trigger('click');

Upvotes: 11

Views: 130908

Answers (5)

ruturaj
ruturaj

Reputation: 3453

Interestingly, when I replaced this:

$("body").trigger("click")

With this:

jQuery("body").trigger("click")

It works!

Upvotes: 10

Fermin
Fermin

Reputation: 36081

I've used the following code a few times and it works sweet:

$("body").click(function(e){ 
    // Check what has been clicked:
    var target = $(e.target); 
    if(target.is("#target")){
    // The target was clicked
    // Do something...
  }
});

Upvotes: 7

Alexis Wilke
Alexis Wilke

Reputation: 20720

As mentioned by Seeker, the problem could have been that you setup the click() function too soon. From your code snippet, we cannot know where you placed the script and whether it gets run at the right time.

An important point is to run such scripts after the document is ready. This is done by placing the click() initialization within that other function as in:

jQuery(document).ready(function()
  {
    jQuery("body").click(function()
      {
        // ... your click code here ...
      });
  });

This is usually the best method, especially if you include your JavaScript code in your <head> tag. If you include it at the very bottom of the page, then the ready() function is less important, but it may still be useful.

Upvotes: 0

Seeker
Seeker

Reputation: 365

if all things were said didn't work, go back to basics and test if this is working:

<html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
  </head>
  <body>
    <script type="text/javascript">
      $('body').click(function() {
        // do something here like:
        alert('hey! The body click is working!!!')
      });
    </script>
  </body>
</html>

then tell me if its working or not.

Upvotes: 2

kgiannakakis
kgiannakakis

Reputation: 104178

You should have something like this:

$('body').click(function() {
   // do something here
});

The callback function will be called when the user clicks somewhere on the web page. You can trigger the callback programmatically with:

$('body').trigger('click');

Upvotes: 11

Related Questions