我该如何使用jQuery更改控件的可见性?我有一个控件,将其可见属性设置为false(不是CSS)。
当我对它使用show()
函数时,什么也没发生,似乎hide()
和show()
方法是针对控件的CSS设置,而非可见属性。
我该如何使用jQuery更改控件的可见性?我有一个控件,将其可见属性设置为false(不是CSS)。
当我对它使用show()
函数时,什么也没发生,似乎hide()
和show()
方法是针对控件的CSS设置,而非可见属性。
visible="false"
表示控件未呈现在页面中。如果要使控件在客户端显示,需要使用style="display: none;"
让它真正出现在HTML中,否则客户端将没有任何东西可显示,因为该元素不在服务器发送的HTML中。visible
属性并添加style
属性,然后可以使用jQuery来显示它,如下所示:$("#elementID").show();
要更改元素的可见性,需要使用.css()
,如下:
$("#elem").css('visibility', 'visible');
display: none;
而不是visibility: hidden;
,然后只需执行以下操作:$("#elem").show();
.show()
和 .hide()
函数处理的是 display
而不是 visibility
,和大多数 jQuery 函数一样 :)
.show()和.hide()修改CSS的display规则。我认为你想要:
$(selector).css('visibility', 'hidden'); // Hide element
$(selector).css('visibility', 'visible'); // Show element
jQuery( '.element' ).show().css( 'visibility', 'visible' );
或者,假设隐藏元素的类名为hidden,例如Twitter Bootstrap中,toggleClass()可能会很有用:
jQuery( '.element' ).toggleClass( 'hidden' );
jQuery( '.element' ).css( 'visibility', 'visible' ).fadeIn( 5000 );
已经过去了10年,不确定是否仍有人认为这个问题或答案是相关的。
但是一个快速的解决方法就是将asp控件
包装在一个html容器
中。
<div id="myElement" style="display: inline-block">
<asp:TextBox ID="textBox1" runat="server"></asp:TextBox>
</div>
Javascript事件
时,如果需要使用asp控件
来触发事件,则只需将asp控件
包装在div
容器中即可。<div id="testG">
<asp:Button ID="Button2" runat="server" CssClass="btn" Text="Activate" />
</div>
$(document).ready(function () {
$("#testG").click(function () {
$("#myElement").css("display", "none");
});
});
display: none;
而不是visibility: hidden;
,那么在隐藏时它不会占用页面上的任何空间。 - Nick Craver