我想div
使用 jquery 设置我的样式,我想让它在单击背景时变为蓝色,当我取消单击(我单击页面中除 div 以外的其他部分)时,背景变为红色。对不起,我的英语不好
问问题
7511 次
5 回答
2
使用点击处理程序,document
您可以捕获所有点击事件,如果点击不在您的 div 上,您可以恢复为红色
$('#yourdiv').click(function() {
$(this).css('background-color', 'blue');
});
$(document).click(function(e) {
if(!$(e.target).is('#yourdiv'))
$('#yourdiv').css('background-color', 'red');
});
见例子:http: //jsbin.com/oyunin/1/edit
于 2012-12-17T14:53:38.550 回答
1
我不确定性能,但您可以执行以下操作:
$("*").not("your element selector").on("click",function(){
//other elements click
});
一个好的做法是这样做:
$("*","some container").not......
于 2012-12-17T14:51:47.093 回答
0
Try this,
Jquery Code:
$(document).mouseup(function (e){
var wrapDiv = $(".wrapper");
if(wrapDiv.has(e.target).length === 0){
wrapDiv.css('background-color','red');
}
$('.wrapper').click(function(event){
$('.wrapper').css('background-color','blue')
});
});
CSS code:
<style type="text/css">
.wrapper{
background-color:#0FF;
width:200px;
height:200px;
}
</style>
Html code:
<div class="wrapper">
</div>
于 2012-12-17T15:05:00.550 回答
0
我在我的站点中解决它的方法是向有问题click
的问题添加一个事件,并在一般文档中添加div
另一个事件。click
该方法stopImmediatePropagation()
使其按预期工作:
这是一个带有工作示例的jsFiddle 。
HTML:
<div class="colored"></div>
查询:
$(document).click(function(e){
$(".active").removeClass("active");
});
$(".colored").live("click",function(e){
$(this).addClass("active");
e.stopImmediatePropagation();
});
CSS:
.colored{background:red}
.colored.active{background:blue}
于 2012-12-17T14:49:18.977 回答
0
如果您想在单击另一个 div 时更改 div,可以在另一个 div 上添加单击事件,或者您可能希望将单击事件添加到文档的整个正文中,以便在未捕获单击事件时并被另一个侦听器停止,它将通过主体的事件侦听器。
于 2012-12-17T14:52:02.777 回答