2013-07-13 226 views
1

我定義的模板如下:DIV顯示隱藏內嵌

$.template('aTemplate', 
    '<div id="someid" class="abc">' + 
    .... 
    '</div>' 
); 

我想這個div是內嵌在其他元素(無論我把它們)。 我也希望這個div被隱藏(當我將它添加到DOM),然後在某些其他操作(用戶單擊)上變爲可見。

所以使其內聯和隱藏的,我定義下面的CSS

.abc { 
    display: inline-block; 
    visibility: hidden; 
} 

和一些動作,我有

$('#someid').show() 

但它似乎並不工作。有什麼可以糾正的建議?

+0

嘗試'$( '#someid' ).css('visibility','visible')' – elclanrs

回答

0

你的問題是$.show()將設置display:inline-block

從文檔:
http://api.jquery.com/show/
匹配的元素將被立即發現,沒有動畫。這大致相當於調用.css('display','block'),除了display屬性恢復到最初的狀態。如果一個元素的顯示值爲內聯,然後被隱藏並顯示,它將再次以內聯方式顯示。

如果你想div來維持它在DOM位置,儘量不透明度設置爲0開始:

.abc { 
    display: inline-block; 
    opacity: 0; 
} 

然後調用:

$('#someid').css('opacity','1'); 
+0

這種作品。問題是我的div也包含一些按鈕。只是將不透明度設置爲0並不能確保如果有人點擊該區域,按鈕點擊不會啓動,所以我需要禁用並隱藏 – kk1957

+0

我不會使用不透明度來顯示和隱藏某些內容。點擊將會註冊,而不是用戶友好的,不要這樣做。 –