2013-01-11 85 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