在jquery中有没有unlick事件?

时间:2012-12-17 14:47:10

标签: javascript jquery

我想使用jquery设置我的div样式,我想在点击背景变为蓝色时进行设置,当我取消选中时(我点击我页面中除div之外的其他部分)背景变为红色。抱歉我的英文不好

5 个答案:

答案 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');
});

参见示例:http://jsbin.com/oyunin/1/edit

答案 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>