Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Backbone.js-如何使用&x27;ul'';李';使用MVC将标签作为选项卡小部件?_Backbone.js - Fatal编程技术网

Backbone.js-如何使用&x27;ul'';李';使用MVC将标签作为选项卡小部件?

Backbone.js-如何使用&x27;ul'';李';使用MVC将标签作为选项卡小部件?,backbone.js,Backbone.js,这个问题可能会让你感到困惑,我想使用“Backbone.js”和MVC概念从“ul”和“li”标签中实现“tab”小部件。怎么办 比如说 <ul> <li> One </li> <li> Two </li> <li> Three </li> </ul> 一个 两个 三 当点击链接“one”时,我想显示一些内容(div)并隐藏其他内容。如何使用MVC概念 这可以在没有主干网和MVC的

这个问题可能会让你感到困惑,我想使用“Backbone.js”和MVC概念从“ul”和“li”标签中实现“tab”小部件。怎么办

比如说

<ul>
  <li> One </li>
  <li> Two </li>
  <li> Three </li>
</ul>
  • 一个
  • 两个
当点击链接“one”时,我想显示一些内容(div)并隐藏其他内容。如何使用MVC概念


这可以在没有主干网和MVC的情况下完成,但我想用主干网完成,请帮助我。

您可以创建一个主干网。视图将处理所有“选项卡”。此主干.视图应涵盖内容上方的或任何内容

根据您的ul,您可以添加CSS选择器或其他属性:

<div id="mainDiv">
    <ul>
        <li class="tab-one">One</li>
        <li class="tab-two">Two</li>
        <li class="tab-three">Threeli>
    </ul>
    <div id="tab1" class="tab">...</div>
    <div id="tab2" class="tab">...</div>
    <div id="tab3" class="tab">...</div>
</div>
这只是使用主干显示和隐藏选项卡。您可以用主干网做更多的事情:)


编辑:如果选项卡列表是动态的,则可以使用jquery方式将事件初始化放在Backbone.View的initialize()函数中。一旦您实例化主干.View(var View=new MyView;)

就会调用它,问题是:这些选项卡名称是固定的,或者您希望从某个集合生成它们?非常好,我会尝试然后让您知道状态。如何从事件处理程序showTabOne()初始化其他视图(并呈现视图)。通常,页面会有一个“main”主干视图。这将控制其他sub-Backbone.view。因此,您可以在JS中实例化main Backbone.View(例如var mainView=new MyView),这将初始化视图并设置所有事件处理程序。如果您有其他视图,则可以执行相同的操作。这取决于你如何组织你的页面。
MyView = Backbone.View.extend({
    el: $('#mainDiv'),
    events: {
    'click .tab-one': 'showTabOne',
    'click .tab-two': 'showTabTwo',
    'click .tab-three': 'showTabThree'
    },
    showTabOne: function() {
        $(this.el).find('.tab').hide();
        $(this.el).find('#tab1').show();
    },
    showTabTwo: function() {
        $(this.el).find('.tab').hide();
        $(this.el).find('#tab2').show();
    },
    showTabThree: function() {
        $(this.el).find('.tab').hide();
        $(this.el).find('#tab3').show();
    }
    ...
}