页面跳转选中对应的导航

前端在做一个网站的时候,通常会有不同的导航,点击跳转到对应的页面上,这时候就需要给对应页面的导航加一个选中状态,如图:

这是一个有首页,seo优化,娱乐,三个页面组成的一个导航。

实现方式,利用location.href获取当前路径,对它和当前的<a href="a.html"</a> href的值进行对比,把当前的页面的导航选中。

 

<body>
        <ul class="menu" id="menu">  
        <li><a href="a.html">首页</a></li>  
        <li><a href="b.html">SEO优化</a></li>  
        <li><a href="c.html">生活娱乐</a></li>  
        </ul>  
        <p>aaaaaaa</p> 
    </body> 
        <script>
            var urlstr = location.href; 
            var urlstatus = false;
            $("#menu a").each(function() {
              if((urlstr + '/').indexOf($(this).attr('href')) > -1 && $(this).attr('href')!="") {  
                    $(this).addClass('cur'); 
                    urlstatus = true;
                }
                else {
                    $(this).removeClass('cur');
                }
            });
            if (!urlstatus) {
                $("#menu a").eq(0).addClass('cur');
            }
    </script>

 

转载于:https://www.cnblogs.com/hfxm/p/8005369.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Redux 根组件中实现导航栏的页面点击,可以结合 React Router 和 Redux。 首先,安装 React Router 和 React Redux: ```bash npm install react-router-dom react-redux ``` 然后,在根组件中使用 `BrowserRouter` 和 `Provider` 包裹应用内容: ```javascript import { BrowserRouter } from 'react-router-dom'; import { Provider } from 'react-redux'; import store from './store'; function App() { return ( <Provider store={store}> <BrowserRouter> {/* 应用的内容 */} <Routes /> </BrowserRouter> </Provider> ); } ``` 在 Redux 中,我们需要定义一个 Redux action 和 reducer,用来管理导航栏的当前选中项: ```javascript // actions.js export const SELECT_NAV_ITEM = 'SELECT_NAV_ITEM'; export function selectNavItem(item) { return { type: SELECT_NAV_ITEM, payload: item, }; } // reducer.js import { SELECT_NAV_ITEM } from './actions'; const initialState = { selectedNavItem: 'home', }; function rootReducer(state = initialState, action) { switch (action.type) { case SELECT_NAV_ITEM: return { ...state, selectedNavItem: action.payload, }; default: return state; } } export default rootReducer; ``` 在组件中使用 `connect` 函数将 Redux store 中的 `selectedNavItem` 属性映射到组件的 props 中: ```javascript import { connect } from 'react-redux'; function Navbar({ selectedNavItem, selectNavItem }) { const handleItemClick = (item) => { selectNavItem(item); }; return ( <nav> <ul> <li className={selectedNavItem === 'home' ? 'active' : ''}> <a href="#" onClick={() => handleItemClick('home')}> 首页 </a> </li> <li className={selectedNavItem === 'about' ? 'active' : ''}> <a href="#" onClick={() => handleItemClick('about')}> 关于我们 </a> </li> </ul> </nav> ); } const mapStateToProps = (state) => { return { selectedNavItem: state.selectedNavItem, }; }; const mapDispatchToProps = { selectNavItem, }; export default connect(mapStateToProps, mapDispatchToProps)(Navbar); ``` 最后,在 `Routes` 组件中定义路由规则,并根据 `selectedNavItem` 属性渲染对应页面: ```javascript import { Route, Switch } from 'react-router-dom'; import Home from './pages/Home'; import About from './pages/About'; function Routes({ selectedNavItem }) { return ( <Switch> <Route path="/" exact> {/* 渲染首页 */} <Home /> </Route> <Route path="/about"> {/* 渲染关于页面 */} <About /> </Route> {/* 其他页面 */} </Switch> ); } const mapStateToProps = (state) => { return { selectedNavItem: state.selectedNavItem, }; }; export default connect(mapStateToProps)(Routes); ``` 这样,当用户点击导航栏中的某个项时,会触发 Redux action 更新 `selectedNavItem` 属性,导致页面重新渲染并显示对应页面内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值