我想使用jquery设置我的div
样式,我想在点击背景变为蓝色时进行设置,当我取消选中时(我点击我页面中除div之外的其他部分)背景变为红色。抱歉我的英文不好
答案 0 :(得分: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');
});
答案 1 :(得分:1)
我不确定性能,但你可以这样做:
$("*").not("your element selector").on("click",function(){
//other elements click
});
一个好的做法就是这样做:
$(“*”,“某个容器”)。不......
答案 2 :(得分:0)
我在网站上解决这个问题的方法是向有问题的click
添加div
个事件,并向文档添加另一个click
个事件。方法stopImmediatePropagation()
使其按预期工作:
这是一个带有工作示例的jsFiddle。
HTML:
<div class="colored"></div>
JQUERY:
$(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}
答案 3 :(得分:0)
如果要在单击另一个div时更改div,可以在另一个div上添加click事件,或者可能要将click事件添加到文档的整个主体中,以便在单击事件时没有被另一个听众捕获并停止,它将进入身体的事件监听器。
答案 4 :(得分:0)
试试这个,
Jquery代码:
$(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代码:
<style type="text/css">
.wrapper{
background-color:#0FF;
width:200px;
height:200px;
}
</style>
Html代码:
<div class="wrapper">
</div>