要创建超链接,我使用以下代码。
<a data-toggle="tab" data-bind="attr: { href: '../Company/Index/' + IndexID }, text: XYZ"></a>
代码的主要目的是从当前级别移回一个级别。
生成的HTML如下所示。
<a data-toggle="tab" data-bind="attr: { href: '../Company/Index/' + IndexID }, text: DateTimeStamp" href="../Company/Index/0">XYZ</a>
当我们尝试点击超链接时,我们会收到错误消息
Uncaught Error: Syntax error, unrecognized expression: ../Company/Index/0
at Function.Sizzle.error (jquery-1.9.0.js:4411)
at tokenize (jquery-1.9.0.js:5057)
at select (jquery-1.9.0.js:5439)
at Function.Sizzle [as find] (jquery-1.9.0.js:3984)
at init.find (jquery-1.9.0.js:5553)
at init (jquery-1.9.0.js:179)
at jQuery (jquery-1.9.0.js:53)
at b.show (bootstrap.min.js:9)
at HTMLAnchorElement.<anonymous> (bootstrap.min.js:9)
at Function.each (jquery-1.9.0.js:631)
Sizzle.error @ jquery-1.9.0.js:4411
tokenize @ jquery-1.9.0.js:5057
select @ jquery-1.9.0.js:5439
Sizzle @ jquery-1.9.0.js:3984
find @ jquery-1.9.0.js:5553
init @ jquery-1.9.0.js:179
jQuery @ jquery-1.9.0.js:53
b.show @ bootstrap.min.js:9
(anonymous) @ bootstrap.min.js:9
each @ jquery-1.9.0.js:631
each @ jquery-1.9.0.js:253
a.fn.tab @ bootstrap.min.js:9
(anonymous) @ bootstrap.min.js:9
dispatch @ jquery-1.9.0.js:3045
elemData.handle @ jquery-1.9.0.js:2721
但是,当我们右键单击并在新的选项卡中打开它时,它可以很好地工作。
任何有用的指示都将不胜感激。
答案 0 :(得分:2)
您遇到此问题是因为您在代码中定义了两个冲突行为。 data-toggle="tab"
属性使Bootstrap的Tab插件将其视为制表符触发器,也就是说,无论何时单击该项,都应使相关的制表符内容可见。另一方面,href
属性只会为您提供常规网址。
现在想一想:
所以:
href
属性的值并尝试将其用作一个jQuery选择器,用于使引用的元素可见。显然,因为它是一个url而不是一个选择器,它会失败。所以答案实际上取决于你真正想要完成的事情。
data-toggle="tab"
只是一个偶然的遗留物?好的,只需删除它将起作用的属性。我的猜测是第二个选项是你的目标,如果我没有弄错,href
就在那里,因为你想将它用作Ajax请求的URL,并加载标签的内容 - 需求。如果这是正确的,href
属性将无法帮助您,您应该将click事件绑定到执行初始化的viewmodel的方法(即,使用来自服务器的数据填充自身)。然后,您可以按照here, the code block just above 'Note 3'所述的方式传递ajax请求的url。