Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将Backbonejs路由器与Twitter引导选项卡相结合?_Javascript_Jquery_Twitter Bootstrap_Backbone.js_Tabs - Fatal编程技术网

Javascript 如何将Backbonejs路由器与Twitter引导选项卡相结合?

Javascript 如何将Backbonejs路由器与Twitter引导选项卡相结合?,javascript,jquery,twitter-bootstrap,backbone.js,tabs,Javascript,Jquery,Twitter Bootstrap,Backbone.js,Tabs,我有一些jQuery代码与bootstrap相结合,我想在其中更改一些东西,以便可以使用Backbone.js。我已经走了很长一段路,但是现在我在使用标签时遇到了一些问题。我基本上用过。我设法显示了选项卡的内容,但选项卡本身看起来并不是活动的,这让用户对实际打开的选项卡一无所知)。所以我要做的是让标签看起来很活跃 选项卡本身的定义如下: <a id="tab1" href="#/ticket/1">1 Blah Blah</a> var Router = Backbon

我有一些jQuery代码与bootstrap相结合,我想在其中更改一些东西,以便可以使用Backbone.js。我已经走了很长一段路,但是现在我在使用标签时遇到了一些问题。我基本上用过。我设法显示了选项卡的内容,但选项卡本身看起来并不是活动的,这让用户对实际打开的选项卡一无所知)。所以我要做的是让标签看起来很活跃

选项卡本身的定义如下:

<a id="tab1" href="#/ticket/1">1 Blah Blah</a>
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();
不幸的是,我使用Backbone.js更改了选项卡的路由,然后尝试如下显示选项卡的内容:

<a id="tab1" href="#/ticket/1">1 Blah Blah</a>
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();
我想问题在于,
这个
在这里并没有指向选项卡本身。所以我试着用:

$("#tab"+ticketId).tab('show');
但不幸的是,这也不起作用

有人知道我怎么解决这个问题吗?欢迎所有提示

[编辑]
是否无法从路由器获取url上的单击事件,以便我可以使用
.tab(“显示”)

没有“在路由器中获取点击事件”的方法,但您始终可以决定自己在所需选项卡上触发点击事件

router.on("route:ticket", function(ticketId) {
    tabContentView.render({ticketId: ticketId});
    $("#tab" + ticketId).trigger('click');
}

因为$(this)不是此上下文中的节点。IMHO您应该在视图中封装引导交互,并在视图渲染时运行它。render:function(){//make html;this.$el.tab('show')}@Evgeniy-谢谢你的想法,但我有点听不懂你说的。你们可以举个例子吗?签出这个提琴-你们可以从路由器传递id来选择必要的标签并呈现一个视图