如何解决bootstrap导航条不跳转的问题

bootstrap导航条不跳转的解决办法:1、使用“$('#myTabs a').click(function (e){...}”方式;2、使用“data-toggle”标记;3、通过“window.location”实现跳转即可。



本教程操作环境:Windows7系统、bootstrap3版,该方法适用于所有品牌电脑。

推荐:《bootstrap视频教程》

最近在学习bootstrap,准备做一个个人网站的主页。前端就准备采用bootstrap来做了,因为,bootstrap确实很漂亮,也很流行,有了问题也方便通过百度或者谷歌找到答案。

我的页面大概是这个样子:



主要就是采用bootstrap的navbar组件设计了一个自己的导航条,以为很简单的事情,结果最后导航条没有工作。

问题:

1、导航条不按照点击切换相应tab的active状态。链接能够正常跳转,但是始终是Home处于激活状态。

对于这个问题首先百度了一下,可能的原因在于jquery库引用不正确,jquery库的引用一定要在bootstrap库之前,因为bootstrap依赖jquery库工作。

但是我检查了一遍自己的代码后,发现我的引用顺序并没有问题。

接下来,我在bootstrap官网中找到这样一句话(我使用的是bootstrap3)



截图地址:https://v3.bootcss.com/javascript/#tabs

这里表明有两种方法可以激活tab,第一种是通过如下的javascript代码:

1

2

3

$('#myTabs a').click(function (e) {

  e.preventDefault()

  $(this).tab('show')})

第二种是通过"data-toggle"标记

1

2

3

4

5

6
 



采用任意一种方法后,navbar active状态不随点击改变的问题解决了,但是发现导航条中也就是

标记中所有标记的href属性都失效了,后来也是一顿搜索,发现,bootstrap把href属性当id处理,只链接到当前页面的位置,而外部跳转链接被屏蔽。

参考:(https://stackoverflow.com/questions/16785264/jquery-syntax-error)

2、解决了第一项问题后,结果发现navbar中的链接无法跳转到外部链接。

正如前面提到,外部链接被屏蔽,后来只好想到通过js来实现跳转,因此,我把navbar的激活代码修改了一下,通过window.location来实现跳转。

1

2

3

4

5

6

7

$(function () {

      $("#myBar li").click(function (e) {

        e.preventDefault()

        $(this).tab('show')     

        window.location.href = 'http://localhost:3000' + $(this).children('a').attr('href')

      })

 })

参考资源链接:[Bootstrap导航条:点击与悬停显示下拉菜单解决方案](https://wenku.csdn.net/doc/6461ea61543f844488959282?utm_source=wenku_answer2doc_content) 在Bootstrap框架中,实现导航条点击跳转与悬停显示下拉菜单的功能,需要我们对默认的事件处理进行一些定制化调整。由于Bootstrap的dropdown组件默认会阻止点击事件的冒泡,使得点击下拉菜单项时会触发链接的href属性,导致无法进行页面跳转。为了解决这个问题,我们可以通过JQuery移除默认的点击事件监听器,从而使得点击下拉菜单项时仅显示下拉内容,还能正常跳转到链接指向的页面。具体操作如下: 1. 首先,在文档加载完成后,使用JQuery的`off()`方法移除`click.bs.dropdown.data-api`事件监听器,代码如下: ```javascript $(document).ready(function(){ $(document).off('click.bs.dropdown.data-api'); }); ``` 这样,当点击下拉菜单项时,下拉内容会显示出来,并且链接也会正常工作,允许页面跳转。 2. 接下来,为了实现鼠标悬停时的下拉效果,我们需要添加一个新的JQuery事件监听器。可以使用`mouseover`和`mouseout`事件来实现下拉菜单的展开和收起。示例代码如下: ```javascript $(document).ready(function(){ dropdownOpen(); // 调用自定义函数 }); function dropdownOpen() { $('.dropdown').on('mouseover', function() { $(this).find('.dropdown-menu').first().stop(true, true).slideToggle(200); }); $('.dropdown').on('mouseout', function() { $(this).find('.dropdown-menu').first().stop(true, true).slideUp(200); }); } ``` 这段代码定义了一个`dropdownOpen`函数,它在鼠标进入下拉菜单项时展开下拉菜单,在鼠标离开时收起下拉菜单,并使用`slideToggle`和`slideUp`方法来提供平滑的动画效果。 通过上述修改,你的Bootstrap导航条就可以在损失链接跳转功能的前提下,实现鼠标悬停时显示下拉菜单的效果,从而提升用户的交互体验。建议在实际项目中测试这些修改,并确保与现有的Bootstrap实例兼容。 参考资源链接:[Bootstrap导航条:点击与悬停显示下拉菜单解决方案](https://wenku.csdn.net/doc/6461ea61543f844488959282?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值