我有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能记住我的答案:) –