jQuery语法错误:#/
我目前正在为我的Web应用程序使用jQuery,Twitter Bootstrap和AngularJS。 我一直在尝试做路由,但jQuery不断给我Syntax error, unrecognized expression: #/time
每当我尝试点击时间选项卡时,反之亦然。 我不知道哪个导致了这个错误,除了它是由#符号引起的。 我广泛搜索但无济于事。 这是我的代码:
当我将它用于我的AngularJS路由时,我需要保留斜线(即index.html#/main
和index.html#/time
将在我的一个div中加载不同的内容)。 什么可能导致此错误?
我想在指定目标id
的href
额外的斜杠。 删除它们,它应该工作正常。
Bootstrap将href值视为id,以便将目标元素显示为选项卡内容。 所以在这种情况下,它会寻找id = #/time
不存在的东西。
如果你想保持href完整,你可以使用data-target属性
Main
演示
使用jquery v3。*和bootstrap3时会出现此问题,因为“#”不再是有效的选择器(您可以通过使用而不是和删除属性href =“#”和data-target =“#”来修复它以获取下拉列表。看起来像这样:
对于使用它进行修复的标签,将href中的“#/”替换为“#some_your_id”
我有我的情况,我经常多次就这个问题,所以在这里我只是想分享我的情况,
有这样的代码:
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"
,它对我有用。