2011-12-30 89 views
4

在下面的代碼中,我已將show()更改爲css()並修改了可見性。出於某種原因,它不會顯示onclick。jQuery css()與可見性不兼容

下面是HTML:

<td class="area"> 
    <img src="/def.jpg" /> 
</td> 

<tr id="target" style="visibility:hidden"> 
    <td>This was hidden</td> 
</tr> 

,然後jQuery的:

$("td.area").on("click", "img", function(){ 
    $("tr:hidden#target").css("visibility","visible"); 
}); 
+0

我爲您的朋友提供了jQuery滾動解決方案,但您在發佈答案之前刪除了問題。不知道那裏發生了什麼。讓我知道你是否仍然需要它。我可以發佈它。 – 2013-01-02 16:53:41

回答

4

爲什麼不直接使用$('tr#target')。請參閱jsFiddle

1

documentation:hiddenvisibility:hidden的元素不能被認爲是:hidden

的解決辦法是隻針對tr沒有:hidden選擇,就像這樣:

$("tr#target").css("visibility","visible"); 
+0

不,沒有工作。如果我將其更改爲display:none和show(),但它工作正常,但:o/ – Satch3000 2011-12-30 23:44:51

+0

明顯。 'visibility:hidden'不會被視爲':hidden'。看我的編輯。 – Purag 2011-12-30 23:45:58

7

的選擇:隱藏知名度工作只是顯示。這裏是jQuery的文檔http://api.jquery.com/hidden-selector/

你必須嘗試不同的東西:

var t = $("#target"); 
if(t.css("visibility") == "hidden"){ 
    t.css("visibility", "visible"); 
} 
1

我會親自寫這樣的。

注:我沒有測試這個。

<style> 
    #target {visibility: hidden} 
</style> 

<script> 
    $('td.area').live('click', function(){ 
     if ($('#target').is(":visible")) { 
     // Do something? 
     } 
     else { 
     // Make visible 
     $('#target').css('visibility', 'visible') 
     } 
    }); 
</script> 

<td class="area"><img src="/def.jpg" /></td> 
<tr id="target"> 
    <td>This was hidden </td> 
</tr>