#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')
и прочее…