Как получить идентификатор элемента управления и применить функцию jQuery .click () в asp.net

0

У меня есть меню:

 <li class="active" id="liHome"><asp:HyperLink ID="hlHome" runat="server" Text="Home" NavigateUrl="~/Default.aspx"></asp:HyperLink></li>
      <li><asp:HyperLink ID="hlRegister" runat="server" Text="Register" NavigateUrl="~/register.aspx"></asp:HyperLink></li>
      <li><asp:HyperLink ID="hlLogin" runat="server" Text="Login" NavigateUrl="~/login.aspx"></asp:HyperLink></li>
      <li><asp:HyperLink ID="hlBug" runat="server" Text="Report A Bug" NavigateUrl="~/bug.aspx"></asp:HyperLink></li>
      <li><asp:HyperLink ID="hlContactUs" runat="server" Text="Contact Us" NavigateUrl="~/contact.aspx"></asp:HyperLink></li>

Использование Javascript как в заголовке:

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript">
    $(document).ready(function () {
        $('#<%= hlHome.ClientID %>').click(function () {
            alert("ok working")
             $('#liHome').removeClass("active"); // not working
        });
    });

Alert работает в клике, но не удаляет класс из li почему? Я также использую панель обновления. в чем заключается глупость сделать это при использовании панели обновления.

  • 0
    Вы не можете использовать идентификаторы напрямую для управления asp.net. Используйте CssClass или ClientIDMode="Static" или более подробную информацию здесь
  • 0
    @Krishna Кришна он не должен использовать идентификаторы
Показать ещё 6 комментариев
Теги:
asp.net-mvc
user-controls

1 ответ

0
Лучший ответ

Вы могли бы попробовать что-то вроде этого:

     <script type="text/javascript">
       function pageLoad() {
           var loc = window.location.href.split('/');
           var page = loc[loc.length - 1];
           $('ul.nav a').each(function (i) {
               var href = $(this).attr('href');
               if (href.indexOf(page) !== -1) {
                   $('ul.nav li.active').removeClass('active');
                   $(this).parent().addClass('active');
               }
           });
       }
   </script>

Для UpdatePanels я считаю, что вы можете использовать функцию pageLoad вместо $(document).ready

  • 0
    это не работает в моем случае. когда я щелкаю, он применяет активный класс, но когда страница загружается полностью, он снова показывает первый активный. Помогите мне, пожалуйста ?
  • 0
    Просто из любопытства, вы используете UpdatePanels ?
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню