2013-01-11 86 views
0

我想在点击它时隐藏div。为此,我有这个代码,完美的作品:当用jquery点击容器外部时隐藏div

 
var box3=$(".despcnt"); 
box3.mouseup(function() { 
    return false; 
}); 

$(this).mouseup(function (a) { 
    if(!($(a.target).parent(".despcnt").length>0)){ 
     box3.removeClass("dino");box3.hide() 
    } 
}); 

但我想从类中排除。 Despcnt一个链接,有类desplcnt所以当点击书房外或关闭相同的链接...没有试过把它没有工作。

有什么想法?

HTML

<a class="desplcnt" href="#">Link</a> 
<div class="despcnt"> 
    <ul> 
     <li><a data-value="1" href="#">Title</a></li> 
    </ul> 
</div> 
+2

请说明什么问题 - 它真的很难理解你想要什么说 –

+0

第二段是什么意思? – Biotox

+0

代码工作正常,当他们在div外部单击时关闭。但是,如果你点击链接。 Desplcnt没有关闭,这就是我想要的。 对不起,如果你不明白,我使用谷歌翻译 – jon90

回答

2
var $despcnt = $(".despcnt"); 

/* Hide the popup whereas clicking outside */ 
$(document).on("click", function() { 
    $despcnt.hide(); 
}); 

/* Don't hide the popup whereas clicking inside */ 
$despcnt.on("click", function(evt) { 
    evt.stopPropagation(); 
}); 
0

所以,当你点击标题,你要链接隐藏。但是当你点击其他任何地方时,你希望标题隐藏?如果是这样,您可以分配Title a mouseup事件,然后从那里隐藏链接,然后使用e.stopPropagation()为了在使用this时绕过连接到窗口的全局mouseup。这里是一个演示:http://jsfiddle.net/pUnvR/1/

这里是代码:

HTML

<a class="desplcnt" href="#">Link</a> 
<div class="despcnt"> 
<ul> 
    <li><a data-value="1" href="#">Title</a></li> 
</ul> 
</div> 

JS

var box3=$(".despcnt"); 
box3.mouseup(function (e) { 
    $(".desplcnt").hide(); 
    e.stopPropagation(); 
}); 

$(this).mouseup(function (a) { 
    if(!($(a.target).parent(".despcnt").length>0)){ 
     box3.removeClass("dino"); 
     box3.hide(); 
    } 
}); 
+0

通过单击.desplcnt或在容器外隐藏。但我不会,看http://jsfiddle.net/zxu4W/2/ – jon90

+0

http://jsfiddle.net/zxu4W/3/ – jon90