jquery show не работает; visible = «false» не работает

#jquery #.net #html #css

#jquery #.net #HTML #css

Вопрос:

У меня есть ASPX-страница.

 <%@ 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() (в сочетании с видимым разделением) работает без проблем.

Комментарии:

1. Можете ли вы также показать сгенерированный окончательный HTML-код?

2. Я считаю, что div должен быть runat=server для того, чтобы атрибут visible работал.

3. Хорошо, без runat = server это никогда не работает?

4. вам нужно установить style.visibility='hidden' или style.visibility='visible' в javscript…

5. Попробуйте использовать style="display:none;" вместо style="visibility:hidden;"

Ответ №1:

Visible является ли ASP.NET свойство, вы не можете применить это к элементам управления HTML, если не добавите runat="server" .

Если вы хотите иметь возможность управлять видимостью вашего div со стороны сервера, либо добавьте runat="server" и укажите ID , с помощью которого можно ссылаться на элемент, либо используйте ASP.NET Панель управления, которая отображается как div на клиенте.

Что касается проблем с видимостью, измените свой стиль div на display: none вместо visibility: hidden , это должно сработать.

Выполните jQuery show() и hide() измените display свойство CSS.

Ответ №2:

Да, я предлагаю. Старайтесь не добавлять visibility:hidden атрибут.

Вы можете упростить это с помощью

 $(document).ready(function() {
    $(".someClass").css("display":"none");

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

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

});
  

Ответ №3:

Попробуйте display:none использовать CSS для вашего DIV.

Ответ №4:

.show() и .hide() работает со значениями CSS display: none или display: block , если вы хотите испортить видимость, то вам следует .css('visibility','hidden') и прочее…

Подробнее @jQuery docs