jquery显示不工作; visible =“false”无效

时间:2011-04-11 10:39:44

标签: jquery .net html css

我有一个ASPX-Page。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function() {

            $("#html-Button").click(function() {
                $(".someClass").show();
            });

            $("#<%= btn.ClientID %>").click(function() {
                $(".someClass").show();
            });

        });

    </script>

</head>
<body>

    <form id="form1" runat="server">

    <div style="visibility:hidden" class="someClass">blabla</div>

    <input id="html-Button" type="button" value="html-Button" />
    <asp:Button runat="server" ID="btn" Text="click me" OnClientClick="return false;" />

    </form>
</body>
</html>

我的问题是

    <div>
  • ,属性visible="false"不起作用,我必须使用style-attribute

  • 脚本中的
  • .show()永远不会使用任何一个按钮。但是,.hide()(与可见div组合)可以正常工作。

4 个答案:

答案 0 :(得分:2)

Visible是一个ASP.NET属性,除非添加runat="server",否则不能将其应用于HTML控件。

如果您希望能够从服务器端控制div的可见性,请添加runat="server"并提供用于引用该元素的ID,或使用{{3在客户端上呈现为div

关于可见性问题,请将div的样式更改为display: none而不是visibility: hidden,这应该可以解决问题。

jQuery show()hide()修改了display CSS属性。

答案 1 :(得分:1)

为DIV的CSS尝试display:none

答案 2 :(得分:0)

.show().hide()适用于CSS值display: nonedisplay: block,如果您想要查看可见性,那么您应该.css('visibility','hidden')和其他内容。

Read more @jQuery docs

答案 3 :(得分:0)

是的,我建议。尽量不要添加visibility:hidden属性。

您可以使用

保持简单
$(document).ready(function() {
    $(".someClass").css("display":"none");

    $("#html-Button").click(function() {
        $(".someClass").toggle(); //hides or shows
    });

    $("#<%= btn.ClientID %>").click(function() {
        $(".someClass").toggle();
    });

});