1 つの div () 以外のページ上の任意の場所をクリックしたときに関数をトリガーするにはどうすればよいid=menu_content
ですか?
質問する
127675 次
6 に答える
158
イベントが id の div によって生成された場合、ドキュメントに適用click
して処理body
をキャンセルできます。これにより、イベントが単一の要素にバインドされ、例外を除くすべての要素とのバインドが保存されます。click
click
menu_content
click
menu_content
$('body').click(function(evt){
if(evt.target.id == "menu_content")
return;
//For descendants of menu_content being clicked, remove this check if you do not want to put constraint on descendants.
if($(evt.target).closest('#menu_content').length)
return;
//Do processing of click event here for every element except with id menu_content
});
于 2012-09-30T14:00:30.987 に答える
50
jQuery Event Targetのドキュメントを参照してください。イベント オブジェクトの target プロパティを使用すると、#menu_content
要素内のどこでクリックが発生したかを検出できます。発生した場合は、クリック ハンドラーを早期に終了できます。.closest()
の子孫で発生したクリックの場合を処理するには、 を使用する必要があります#menu_content
。
$(document).click(function(e){
// Check if click was triggered on or within #menu_content
if( $(e.target).closest("#menu_content").length > 0 ) {
return false;
}
// Otherwise
// trigger your click function
});
于 2012-09-30T14:04:29.737 に答える
46
これを試して
$('html').click(function() {
//your stuf
});
$('#menucontainer').click(function(event){
event.stopPropagation();
});
場外イベントもご利用いただけ ます
于 2012-09-30T14:00:12.330 に答える
1
これを試すことができます:
$(":not(#menu_content)").on("click", function(e) {
e.stopPropagation();
// Run your function when clicked anywhere except #menu_content
// Use with caution, 'cause it will prevent clicking on other elements
});
$("#menu_content").on("click", function(e) {
e.stopPropagation();
// Run when clicked on #menu_content
});
于 2021-06-11T17:30:33.423 に答える