如何使用 jquery 使不可见的控件可见? (隐藏和显示不起作用)

发布于 2024-09-06 01:03:26 字数 166 浏览 7 评论 0原文

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

当我使用 show() 函数时,没有任何反应,似乎 hide()show() 方法用于 css 集控制,不可见的属性。

How can I change the visibility of a control with jQuery? I have a control that its visible property to false (not css).

When I used show() function for it nothing happened, it seems that hide() and show() methods are for css set of a control, not visible property.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

毁虫ゝ 2024-09-13 01:03:26

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

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

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

旧答案(在 帕特里克的捕获)

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

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

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

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

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

You can't do this with jQuery, visible="false" in asp.net means the control isn't rendered into the page. If you want the control to go to the client, you need to do style="display: none;" so it's actually in the HTML, otherwise there's literally nothing for the client to show, since the element wasn't in the HTML your server sent.

If you remove the visible attribute and add the style attribute you can then use jQuery to show it, like this:

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

Old Answer (before patrick's catch)

To change visibility, you need to use .css(), like this:

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

Unless you need to have the element occupy page space though, use display: none; instead of visibility: hidden; in your CSS, then just do:

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

The .show() and .hide() functions deal with display instead of visibility, like most of the jQuery functions :)

感性不性感 2024-09-13 01:03:26

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

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

.show() and .hide() modify the css display rule. I think you want:

$(selector).css('visibility', 'hidden'); // Hide element
$(selector).css('visibility', 'visible'); // Show element
夜夜流光相皎洁 2024-09-13 01:03:26

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

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

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

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

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

最后,如果您想链接函数,也许具有淡入淡出效果,您可以这样做:

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

Here's some code I use to deal with this.

First we show the element, which will typically set the display type to "block" via .show() function, and then set the CSS rule to "visible":

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

Or, assuming that the class that is hiding the element is called hidden, such as in Twitter Bootstrap, toggleClass() can be useful:

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

Lastly, if you want to chain functions, perhaps with fancy with a fading effect, you can do it like so:

jQuery( '.element' ).css( 'visibility', 'visible' ).fadeIn( 5000 );
因为看清所以看轻 2024-09-13 01:03:26

十多年过去了,不确定是否有人仍然发现这个问题或答案相关。

但一个快速的解决方法是将 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>

jQuery 代码如下:

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

It's been more than 10 years and not sure if anyone still finding this question or answer relevant.

But a quick workaround is just to wrap the asp control within a html container

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

Whenever the Javascript Event is triggered, if it needs to be an event by the asp control, just wrap the asp control around the div container.

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

The jQuery Code is below:

$(document).ready(function () {
    $("#testG").click(function () {
                $("#myElement").css("display", "none");
     });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文