web-dev-qa-db-ja.com

jQueryでボディクリックをトリガーする

JQueryを使用してbodyタグのクリックをトリガーできません。これを使用しています...

$('body').click();

これでも失敗する

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

何か案は?!

9
ruturaj

興味深いことに..交換したとき

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

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

出来た!!!

11
ruturaj

次のようなものが必要です。

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

ユーザーがWebページのどこかをクリックすると、コールバック関数が呼び出されます。プログラムでコールバックをトリガーできます:

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

次のコードを数回使用しましたが、うまくいきます。

$("body").click(function(e){
  //you can then check what has been clicked
  var target = $(e.target);  
  if (target.is("#popup")) { }
}); // Added ); this for correct syntax
7
Fermin

すべてがうまくいかないと言われた場合は、基本に戻り、これが機能するかどうかをテストします。

<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>

それが機能しているかどうか教えてください。

2
Seeker

Seekerが述べたように、click()関数のセットアップが早すぎることが問題である可能性があります。コードスニペットからは、スクリプトを配置した場所と、スクリプトが適切なタイミングで実行されるかどうかがわかりません。

重要なポイントは、ドキュメントの準備ができた後にそのようなスクリプトを実行することです。これは、次のように他の関数内にclick()初期化を配置することによって行われます。

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

これは通常、特に_<head>_タグにJavaScriptコードを含める場合に最適な方法です。ページの最下部に含める場合、ready()関数はそれほど重要ではありませんが、それでも役立つ場合があります。

0
Alexis Wilke