点击#menut
关闭.m2wrap
以外的任何地方。有用。
$(document).click(function() {
if (!$('#menut').is(':hover')) {
$('.m2wrap').slideUp();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='menut'>
<div class='m1wrap'>
<div class='m1'>SKY</div>
<div class='m2wrap'>
<div class='m2'>SEA</div>
<div class='m2'>EARTH</div>
</div>
</div>
</div>
但是,如果我将#menut
替换为.m1wrap
,则无效。
$(document).click(function() {
if (!$('.m1wrap').is(':hover')) {
$('.m2wrap').slideUp();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='menut'>
<div class='m1wrap'>
<div class='m1'>SKY</div>
<div class='m2wrap'>
<div class='m2'>SEA</div>
<div class='m2'>EARTH</div>
</div>
</div>
</div>
在这种情况下,控制台会显示错误 - Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: hover...
实际上,我需要的是 - if multiple class is not hover...
任何帮助?
答案 0 :(得分:1)
尝试
$(document).click(function() {
if($('#menut:hover').length == 0) {
$('.m2wrap').slideUp();
}
});
这是关注SO question中的答案。
答案 1 :(得分:0)
我解决了完全相同的问题,只需在悬停前删除分号即可,如下所示
`$(document).ready(function(){
$(".owl2-controls").mouseleave(function() {
if(!$('.owl2-controls').is(':hover')){
$('.owl2-controls').hide();
};
});
});`
到
`$(document).ready(function(){
$(".owl2-controls").mouseleave(function() {
if(!$('.owl2-controls').is('hover')){
$('.owl2-controls').hide();
};
});
});`
现在没有错误抛出。