我怎么能用jquery看到一个看不见的控件(隐藏并显示不起作用)

时间:2010-06-11 18:24:07

标签: asp.net jquery controls visibility visual-studio-2008-sp1

如何使用jQuery更改控件的可见性?我有一个控件,它的可见属性为false ...(不是css)

当我使用show()函数时,没有任何事情发生,似乎hide()show()方法用于控件的css集,而不是可见属性......

感谢您的回答,

祝你好运

4 个答案:

答案 0 :(得分:34)

你无法用jQuery做到这一点,asp.net中的visible="false"意味着控件没有呈现在页面中。如果你想让控件转到客户端,你需要做style="display: none;"所以它实际上在HTML中,否则客户端显然没有显示,因为该元素不在你的服务器发送的HTML中。

如果删除visible属性并添加style属性,则可以使用jQuery显示它,如下所示:

$("#elementID").show();

旧答案(在patrick's捕获之前)

要更改visibility,您需要使用.css(),如下所示:

$("#elem").css('visibility', 'visible');

除非您需要让元素占用页面空间,否则请在CSS中使用display: none;而不是visibility: hidden;,然后执行:

$("#elem").show();

.show().hide()函数处理display而不是visibility,就像大多数jQuery函数一样:)

答案 1 :(得分:7)

.show()和.hide()修改css显示规则。我想你想要:

$(selector).css('visibility', 'hidden'); // Hide element
$(selector).css('visibility', 'visible'); // Show element

答案 2 :(得分:1)

这是我用来处理这个问题的一些代码。

首先我们展示元素,它通常会通过.show()函数将显示类型设置为“阻止”,然后将CSS规则设置为“可见”:

jQuery( '.element' ).show().css( 'visibility', 'visible' );

或者,假设隐藏元素的类被称为隐藏,例如在Twitter Bootstrap中,toggleClass()可能很有用:

jQuery( '.element' ).toggleClass( 'hidden' );

最后,如果你想链接函数,或许有幻想的淡化效果,你可以这样做:

jQuery( '.element' ).css( 'visibility', 'visible' ).fadeIn( 5000 );

答案 3 :(得分:0)

已经10多年了,不确定是否有人还在寻找这个问题或答案。

但是一种快速的解决方法是将asp control包装在html container

<div id="myElement" style="display: inline-block">
   <asp:TextBox ID="textBox1" runat="server"></asp:TextBox>
</div>

无论何时触发Javascript Event,如果需要asp control来触发事件,只需将asp control包裹在div容器周围。

<div id="testG">  
   <asp:Button ID="Button2" runat="server" CssClass="btn" Text="Activate" />
</div>

jQuery代码如下:

$(document).ready(function () {
    $("#testG").click(function () {
                $("#myElement").css("display", "none");
     });
});