Показать тег привязки на странице ASP.Net с помощью JQuery

У меня есть страница ASP.Net, на которой у меня есть тег привязки html, и я установил для свойства visible значение false. Я хочу сделать его видимым с помощью JQuery, но не могу заставить его работать. Я пытался использовать селектор для самого тега привязки, а также селектор класса, но ни один из них не дал никакого эффекта. Вот разметка для тега привязки:

<a runat="server" class="reg" visible="false" id="RegisterSoftwareTab" href="../RegisterSoftware.aspx">Register Software</a>

А вот код JQuery:

<script type="text/javascript" >
    $(document).ready(function() {
        $('a').attr("visible", "true");
        $('a').show();
        $('.reg').attr("visible", "true");
        $('.reg').show();
    });
</script>

person Russ Clark    schedule 27.07.2010    source источник
comment
Можете ли вы показать html, сгенерированный для этого тега, пожалуйста?   -  person Nikita Rybak    schedule 28.07.2010
comment
Никита, думаю может в этом проблема, зашел посмотреть исходник страницы в браузере, а html по той ссылке нет. Похоже, что параметр visible=false заставляет его не отображать html. Я думаю, что попробую изменить тег html на тег asp.   -  person Russ Clark    schedule 28.07.2010


Ответы (2)


visible не является правильным атрибутом для использования; он не определен стандартом HTML. Вы можете использовать атрибут Visible только в элементе управления ASP.NET, таком как asp:Button; Затем Visible="false" будет преобразовано в style="display:none", совместимое с HTML.

Если вы хотите скрыть свой элемент с помощью обычного тега HTML, попробуйте использовать свойство CSS display непосредственно внутри тега HTML:

<a runat="server" class="reg" style="display:none;"  id="RegisterSoftwareTab" href="../RegisterSoftware.aspx">Register Software</a>

Что делает метод show(), так это переключает стиль элемента на display:inline;, поэтому в этом случае вы должны вызывать только $('.reg').show() или $('a').show(), без необходимости напрямую изменять свойство CSS display с помощью метода attr():

<script type="text/javascript" >
    $(document).ready(function() {
        $('a').show();
    });
</script>
person Giuseppe Accaputo    schedule 27.07.2010
comment
visible - это свойство веб-элемента управления ASP.Net, а не HTML :) - person Nick Craver; 28.07.2010
comment
Да, я знаю; Я косвенно упомянул об этом в самой первой строке, но потом понял, что было бы неплохо упомянуть его использование в элементе управления ASP.NET :) Я изменил свой ответ, включив в него и эту маленькую подсказку. Спасибо. - person Giuseppe Accaputo; 28.07.2010

Установите style на none для тега привязки:

<a runat="server" class="reg" style="display: none;" id="RegisterSoftwareTab" href="../RegisterSoftware.aspx">Register Software</a>

Затем, чтобы показать это, используйте $('a').show();

person Gert Grenander    schedule 27.07.2010