17

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

当我show()为它使用函数时,什么也没发生,似乎hide()show()方法是用于控件的 css 集,而不是可见属性。

4

4 回答 4

36

你不能用 jQuery 做到这一点,visible="false"在 asp.net 中意味着控件没有呈现到页面中。如果您希望控件转到客户端,您需要这样做style="display: none;",它实际上位于 HTML 中,否则客户端实际上没有任何内容可以显示,因为该元素不在服务器发送的 HTML 中。

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

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

旧答案(在帕特里克抓到之前)

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

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

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

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

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

于 2010-06-11T18:25:05.387 回答
7

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

$(selector).css('visibility', 'hidden'); // Hide element
$(selector).css('visibility', 'visible'); // Show element
于 2010-06-11T18:25:39.317 回答
1

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

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

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

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

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

最后,如果你想链接函数,也许需要花哨的褪色效果,你可以这样做:

jQuery( '.element' ).css( 'visibility', 'visible' ).fadeIn( 5000 );
于 2012-06-09T08:01:32.617 回答
0

已经 10 多年了,不确定是否有人仍然认为这个问题或答案相关。

但是一个快速的解决方法就是asp controlhtml 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");
     });
});
于 2020-10-09T20:17:13.073 回答