7

私はhtml構造を持っています

<div class="abc">
  <div id="test">
    <label>Name</label>
    <input type="checkbox">
    <label>Name</label>
    <input type="checkbox">
    <label>Name</label>
    <input type="checkbox">     
  </div>
</div>

div id testの外側をクリックすると、特定の関数を呼び出すことができます。また、 div id テスト内でイベントがトリガーされることはありません。つまり、チェックボックスをクリックしても、イベントはトリガーされません。

どんな助けでも本当に感謝します。

4

9 に答える 9

11

次のコードで実現できます(デモ:http://jsfiddle.net/CrfCD/

$(document).ready(function(){
    $(document).click(function(e){
        if ($(e.target).is('#test,#test *')) {
            return;
        }
        else
        {
            alert("Hi");
            //Perform your event operations
        }
    });
});
于 2013-08-29T06:05:35.070 に答える
2

これを試して、

 $('.abc').click(function(e){
  if(e.target.id == 'test') {
   return false;
  }
 })
于 2013-08-29T05:56:29.413 に答える
2

使用するだけです:(デモ)

JavaScript

$('.abc').click(function(e){
    alert('Do anything');
});

$('#test').click(function(e){
    e.stopPropagation();
    // Do only if anything in #test was clicked
});

e.stopPropagation()イベントが次の要素にバブリングするのを防ぎます

于 2013-08-29T06:03:07.337 に答える
1
$(document).click(function(e){
   if(e.target.id == "test"){
     e.preventDefault();      
     e.stopPropagation();   
   }
   else{
      //your function call that you want to invoke on clicking anywhere outside of div _test_
   } 
});
于 2013-08-29T05:59:13.960 に答える
1
$(document).click(function(e) {
   if(e.target.id == 'test') {
        alert( "Handler for .click() called." );
    }

});

JSFIDDLE デモ

于 2013-08-29T06:00:00.293 に答える
1

クリックした div の ID を取得し、test と等しいかどうかを確認できます。

$("body").on("click", function(e) {
    if(e.target.id != "test") {
       // do something
       return false;
    }
    else {
       return false;
    }
});
于 2013-08-29T05:56:46.643 に答える
1

Div フォーカス イベントを使用して、div がフォーカスを失ったときに一度だけ呼び出されるようにします。投稿のDiv - onblur 関数を参照してください

于 2013-08-29T07:19:06.363 に答える
1

HTML:

<div id="abc" onclick="getId()"> 

JavaScript:

function getId() {
    --Write your function here--
} 
于 2013-08-29T06:02:51.380 に答える
1

これを試して

$(document).click(function(e) {
   if($(e.target).is("#test")){
     e.preventdefault();
     e.stopPropogation();
   } else{ 
     //call your method
   }
}
于 2013-08-29T06:23:26.720 に答える