Javascript jquery中是否存在任何未单击事件?
我想使用jquery设置我的Javascript jquery中是否存在任何未单击事件?,javascript,jquery,Javascript,Jquery,我想使用jquery设置我的div样式,我想在单击背景时使其变为蓝色,当我取消单击(我在页面中单击除div以外的其他部分)时,背景变为红色。很抱歉我的英语不好我在我的网站上解决这个问题的方法是在相关的div中添加一个click事件,然后在文档中添加另一个click事件。方法stopImmediatePropagation()使其按预期工作: 下面是一个例子 HTML: CSS: 我不确定性能,但您可以做如下操作: $("*").not("your element selector").o
div
样式,我想在单击背景时使其变为蓝色,当我取消单击(我在页面中单击除div以外的其他部分)时,背景变为红色。很抱歉我的英语不好我在我的网站上解决这个问题的方法是在相关的div
中添加一个click
事件,然后在文档中添加另一个click
事件。方法stopImmediatePropagation()
使其按预期工作:
下面是一个例子
HTML:
CSS:
我不确定性能,但您可以做如下操作:
$("*").not("your element selector").on("click",function(){
//other elements click
});
一个好的做法是:
$(“*”,“某个容器”)。不是……如果要在单击另一个div时更改div,可以在另一个div上添加一个click事件,或者可能要将click事件添加到文档的整个正文中,以便在另一个侦听器未捕获和停止某个click事件时,它将进入主体的事件侦听器。通过
文档上的单击处理程序,您可以捕获所有的单击事件,如果单击不在您的div上,您可以恢复为红色
$('#yourdiv').click(function() {
$(this).css('background-color', 'blue');
});
$(document).click(function(e) {
if(!$(e.target).is('#yourdiv'))
$('#yourdiv').css('background-color', 'red');
});
参见示例:试试这个
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')
});
});
<style type="text/css">
.wrapper{
background-color:#0FF;
width:200px;
height:200px;
}
</style>
<div class="wrapper">
</div>
CSS代码:
$(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')
});
});
<style type="text/css">
.wrapper{
background-color:#0FF;
width:200px;
height:200px;
}
</style>
<div class="wrapper">
</div>
.包装纸{
背景色:#0FF;
宽度:200px;
高度:200px;
}
Html代码:
$(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')
});
});
<style type="text/css">
.wrapper{
background-color:#0FF;
width:200px;
height:200px;
}
</style>
<div class="wrapper">
</div>
unclick=单击特定元素后,单击该元素的外部?是的,它被称为off()
,但这不是您想要的,您想要的是文档上的一个简单切换函数(jQuery的切换已弃用),检查目标等。必须至少有数千个副本?没有此类事件,但您可以捕获对文档的单击并添加一些逻辑。@Jan Dvorak如果捕获对文档的单击,也会影响我的div,因为我的div在我的文档中,您想给div的背景上色吗?由于事件冒泡,您还必须排除该元素的所有父元素。@JanDvorak或在您单击该元素时停止事件冒泡。@JanDvorak我已经修复了答案,现在它按预期工作,感谢您的更正