我已经将一些jQuery代码与bootstrap相结合,我想在其中更改一些内容,以便我可以使用Backbone.js。我已经走得很远了,但现在我在使用的标签上遇到了一些麻烦。我基本上使用this Twitter bootstrap example。我设法显示选项卡的内容,但选项卡本身看起来并不活跃,哪种让用户不知道哪个选项卡实际打开了。所以我所做的就是让标签看起来很活跃。
标签本身的定义如下:
<a id="tab1" href="#/ticket/1">1 Blah Blah</a>
我曾经使用此代码将标签设置为活动:
$("#pageTab").on("click", "a", function (event) {
event.preventDefault();
$(this).tab('show');
});
不幸的是我使用Backbone.js更改了标签的路由,然后我尝试显示标签的内容,如下所示:
var Router = Backbone.Router.extend({
routes: {
"": "home",
"ticket/:ticketId": "ticket"
}
});
var router = new Router();
router.on("route:ticket", function(ticketId) {
tabContentView.render({ticketId: ticketId}); // This works
$(this).tab('show'); // This does not work
});
Backbone.history.start();
我想问题是this
在这里没有引用标签本身。所以我尝试使用:
$("#tab"+ticketId).tab('show');
但不幸的是,这也不起作用。
有人知道如何解决这个问题吗?欢迎所有提示!
[编辑]
是否无法从路由器获取网址上的点击事件,以便我可以将其与.tab("show");
一起使用?
答案 0 :(得分:0)
无法在路由器中获得点击事件,但您可以随时决定在所需的标签上触发点击事件。
router.on("route:ticket", function(ticketId) {
tabContentView.render({ticketId: ticketId});
$("#tab" + ticketId).trigger('click');
}