我有HTML,例如jQuery的單擊標籤之外
<body><div id="main"><p>some text</p></div></div></div></body>
如何使jQuery的,當你點擊外面#main,但標籤體內一些行動?
$(":not(#main)").click({..});
這裏不http://jsfiddle.net/gwams/1/
我有HTML,例如jQuery的單擊標籤之外
<body><div id="main"><p>some text</p></div></div></div></body>
如何使jQuery的,當你點擊外面#main,但標籤體內一些行動?
$(":not(#main)").click({..});
這裏不http://jsfiddle.net/gwams/1/
$('body').click(function(e){
//if click inside #main
if($(e.target).parents('#main').length || $(e.target).is('#main')){
...
}
else{
//if not clicked inside #main
}
})
檢查我建議是這樣的:
$('body').click(
function(e){
if ($(e.target).is('#main') || $(e.target).closest('#main').length){
// main was clicked
}
else {
// something else was clicked
}
});
工作
你有沒有嘗試過這樣的:
$("body").children().filter(":not(#main)").click(function(){...});
比我自己的建議更好(更乾淨,更簡潔)... + 1! =) –
也可以寫在一行$(「body>:not(#main)」)。click(function(){...}); –
首先,你應該改變的HTML:
<body><div id="main"><p>some text</p></div></body>
它有兩個未閉合的div標籤,然後大衛的回答應該做的伎倆。
$('body').click(function(e) {
if (e.target.id != 'main') {
console.log('outside main but within body');
} else {
console.log('within main');
}
});
$('body').click(function() {
alert('clicked');
});
$('#main').click(function (event) {
event.stopPropagation();
});
應停止點擊裏面#main
向下傳播到body
。
嘗試$("body>:not(#main)").click(function(){...});
從samn
修改如果需要現場版只是改變
$("body>:not(#main)").live("click", function(){...});
非常感謝你 – user990993
如果它的工作aybe u能記住我的答案:) –