jQuery语法错误:#​​/

我目前正在为我的Web应用程序使用jQuery,Twitter Bootstrap和AngularJS。 我一直在尝试做路由,但jQuery不断给我Syntax error, unrecognized expression: #/time每当我尝试点击时间选项卡时,反之亦然。 我不知道哪个导致了这个错误,除了它是由#符号引起的。 我广泛搜索但无济于事。 这是我的代码:

  

当我将它用于我的AngularJS路由时,我需要保留斜线(即index.html#/mainindex.html#/time将在我的一个div中加载不同的内容)。 什么可能导致此错误?

我想在指定目标idhref额外的斜杠。 删除它们,它应该工作正常。

  

Bootstrap将href值视为id,以便将目标元素显示为选项卡内容。 所以在这种情况下,它会寻找id = #/time不存在的东西。

如果你想保持href完整,你可以使用data-target属性

 Main 

演示

使用jquery v3。*和bootstrap3时会出现此问题,因为“#”不再是有效的选择器(您可以通过使用而不是和删除属性href =“#”和data-target =“#”来修复它以获取下拉列表。看起来像这样:

   

对于使用它进行修复的标签,将href中的“#/”替换为“#some_your_id”

简单解决方案

使用带有空白href的锚标记

 Dashboard 

我有我的情况,我经常多次就这个问题,所以在这里我只是想分享我的情况,

有这样的代码:

  handleTabs: function () { //var hash = document.location.hash; //var prefix = "tab_"; //if (hash) { // $('.nav a[href='+hash.replace(prefix,"")+']').trigger('click'); //} //// Change hash for page-reload //$(document).on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) { // window.location.hash = e.target.hash.replace("#", "#" + prefix); //}); }, 

我跳过这些线,我的问题解决了。

这与代码和ui.router angularJS之间的页面中的hashtagh斜杠 #/处理发生冲突

在这种切换机制中, data-toggle="tab"看起来在不同的选项卡之间切换。 但是,在使用Angular Routing的情况下,这些链接指向不同的视图文件。

我尝试了data-toggle="link" ,它对我有用。