检索导航类名称在页面加载jQuery
Retrieve navigation class name on page load jQuery
我有一个链接列表,这些链接使用锚标记链接到页面内的部分。当用户加载页面并将"active"类添加到列表项时,我试图最初抓取当前类名。因此,例如,如果用户访问www.mydomain.com/#about-section,导航将删除现有的"活动"类,然后将该类添加到当前链接。
<nav id="primary">
<ul>
<li class="active"><a href="#intro-section">Home</a></li>
<li><a href="#work-section">Work</a></li>
<li><a href="#about-section">About</a></li>
<li><a href="#contact-section">Contact</a></li>
</ul>
</nav>
我该如何去改变类取决于哪个部分是在使用jQuery视图?
那么,您只需将"click"处理程序绑定到<a>
标记。
$('nav').delegate('a', 'click', function() {
$(this).closest('ul').find('li').removeClass('active');
$(this).closest('li').addClass('active');
});
如果你的导航结构更深或更复杂,你需要使用更具体的选择器。
编辑本;如果您希望在页面加载时发生这种情况,您必须在"ready"处理程序中做一些事情:
$(function() {
$('nav a[href="' + window.location.hash + '"]').closest('li').addClass('active');
});
编辑本;上面的代码最初将"active"添加到<a>
而不是其父<li>
-感谢@scessor的更正。
如果我理解正确,你会得到一个URL:var URL = www.mydomain.com/#about-section
您可以通过以下方式获得锚标记:
var anc = URL.split('#')[1]; // 'about-section'
那么你可以用href:
获得链接var aLink = $('a[href='+anc +']');
最后删除所有活动类获得li并添加活动类
$('li','#primary').removeClass('active');
aLink.closest('li').addClass('active');
我想这样做会有效果。不是测试。
var hash = window.location.hash;
if (hash != '') {
//remove active class
$('.active').removeClass('active');
//attach active class to anchor
$('a [name="' + hash + '"]').addClass('active'); //link anchors
$('* [id="' + hash + '"]).addClass('active'); //id anchors
}
相关文章:
- 使用javascript函数在页面初始化后加载jquery
- 什么'这是加载jQuery的最佳方式
- 在WordPress站点中加载jquery.js后加载javascript代码
- 延迟加载jquery后替换$(document).ready(function)
- 如何使用onLoad加载jQuery JSON.从Zipcode On Form获取城市和州
- 对页面重新加载 Jquery 执行操作
- 在Ajax(过滤器)加载之后加载jQuery脚本
- 异步加载JQuery时Tabbed Box已损坏
- 加载Jquery时Chrome扩展出错
- 在更改事件上加载jQuery DataTable
- 手动加载JQuery而不触发内容安全策略
- 如果更改,请在ng之后重新加载Jquery
- 脚本似乎在加载jQuery之前运行-未定义Uncaught ReferenceError:$
- 在使用jquery之前动态加载jquery
- 如何重新加载jquery,以便它能为下一个进程工作
- Firefox没有't从ajax.googleapis.com加载jquery
- 我无法在自定义Wordpress主题中成功加载jQuery
- 正在从maphilight href加载Jquery选项卡
- 如何在完全加载html之后加载jquery代码段
- 在页面加载jQuery/Javascript时,按.class对表行进行排序