У меня есть меню:
<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 почему? Я также использую панель обновления. в чем заключается глупость сделать это при использовании панели обновления.
Вы могли бы попробовать что-то вроде этого:
<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
UpdatePanels
?
ClientIDMode="Static"
или более подробную информацию здесь