2011-12-30 106 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>