在菜单中添加一个类,然后使用jquery单击链接?
我正在尝试使用jquery在我的css菜单中添加一个类,它添加了当您单击菜单项时选择的类但它实际上没有单击超链接。
编辑:它添加了一个li
类。 但是当我点击它时,它什么也没做
HTML:
jQuery的:
$(function () { $('.topmenu a:link').click(function (e) { e.preventDefault(); var $this = $(this); $this.closest('ul').children('li').removeClass('selected'); $this.parent().addClass('selected'); }); });
我需要它点击链接一旦它分配了“选择”类,奇怪,因为手动点击似乎不起作用?
CSS:
#nav { width: 100%; height: 30px; } nav a.current { display: block; margin: auto; width: 950px; } nav ul { list-style: none outside none; margin: 8px 0 0; } nav li { float: left; height: 45px; left: -45px; position: relative; top: -16px; z-index: 2000; } nav li a { color: #FFFFFF; text-decoration: none; } nav a:link, nav a:visited, nav a:active { display: block; float: left; font-size: 14pt; font-weight: normal; height: 33px; padding: 11px 17px 0; } nav li:hover, .home-link a, .current_page_item a:link, .current_page_item a:visited, a.children_openend, .topmenu li.selected a { background: url("images/dc/menu-selected.png") repeat-x scroll 0 0 transparent !important; color: #FFFFFF; } nav a:hover { color: #FFFFFF; }
您可以使用手动触发单击
.trigger("click");
所以你做完之后
addClass("selected");
只需在结尾标记一个trigger()调用:
addClass("selected").trigger("click");
编辑:
您可以手动重定向浏览器,而不是这样做:
addClass("selected"); window.location.href = $this.attr("href");
.trigger()不起作用,因为你在li上触发它,而不是a。 我很抱歉。
再次编辑:
如果我理解你正确,你希望在点击链接并加载新页面后,li仍然拥有该类。 你可以用CSS做到这一点。 如果您为每个列表项提供与页面相关的类,例如:
....
在每个页面上,为body标签添加一个id:
然后,您可以使用以下方法对当前选定的li进行样式设置:
#home-page .home-link {}
这有帮助吗?
嗯。 如果您想要“点击”链接,则必须删除以下行:
e.preventDefault();
但是,链接将转到其href
设置的页面,我不知道你是否想要它。
希望这可以帮助。 干杯
您的代码正在按照您的要求执行操作: e.preventDefault();
在事件处理程序内部阻止该事件的默认行为。
这是因为你正在使用e.preventDefault();
,它禁用了的默认行为。
另外,请注意jQuery当前不支持:link
选择器。 因此,您的选择器仅适用于某些浏览器。
你可能想要使用它:
$('.topmenu a[href]').click(function (e) {
编辑:
当然,在链接之后将导致加载新页面,并且对先前创建的DOM的任何更改都将丢失。
如果您只是尝试设置当前页面的链接样式,请尝试尝试:
var page = window.location.pathname.split('/').pop(); $('a[href$="' + page + '"]').parent().addClass('selected');
当页面加载时,它将获取window.location
的pathname
中的最后一项,并将其连接到选择器中以选择该页面的元素。