html - 使用 Mithril 为 Bootstrap Accordion 生成 HTML

标签 html twitter-bootstrap-3 mithril.js

在使用 Mithril 生成功能正常的 Bootstrap Accordion 时遇到问题。 当我手动编写此 HTML 时, Accordion 可以正常工作。

<div id="mycontent">
    <div class="container">
        <div class="row">
            <div class="col-md-8 p-t-3">
                <div id="bookingaccordion" role="tablist">
                    <div class="panel panel-default">
                        <div id="headingOne" class="panel-heading"
                             role="tab">
                             <h4 class="panel-title">
                                 <a data-target="#collapseOne" data-toggle="collapse"
                                    data-parent="#bookingaccordion">
                                    Address and Contact details
                                 </a>
                             </h4>
                        </div>
                        <div id="collapseOne" class="panel-collapse collapse in"
                             role="tabpanel" aria-labelledby="headingOne">
                             Collapsible contact detail form
                        </div>
                    </div>
                    <div class="panel panel-default">
                        <div id="headingTwo" class="panel-heading" role="tab">
                            <h4 class="panel-title">
                                <a data-target="#collapseTwo" data-toggle="collapse"
                                   data-parent="#bookingaccordion">
                                   Booking details
                                </a>
                            </h4>
                        </div>
                        <div id="collapseTwo" class="panel-collapse collapse"
                            role="tabpanel" aria-labelledby="headingTwo">
                            Collapsible booking detail form
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

我可以在 Mithril View 中使用这段代码生成看起来完全相同的 HTML。

return m("div.container", [
           m("div.row", [
               m("div.col-md-8.p-t-3", [
                   m("#bookingaccordion", {role: "tablist"}, [
                       m(".panel.panel-default", [
                           m("#headingOne.panel-heading", {role: "tab"}, [
                               m("h4.panel-title", [
                                   m('a[data-target="#collapseOne"
                                       data-toggle="collapse"
                                       data-parent="#bookingaccordion"]',
                                       "Address and Contact details"
                                   )
                               ])
                           ]),
                           m('#collapseOne.panel-collapse.collapse.in
                               [role="tabpanel" aria-labelledby="headingOne"]',
                               "Collapsible contact detail form"
                           )
						]),
                        m(".panel.panel-default", [
                            m("#headingTwo.panel-heading", {role: "tab"}, [
                                m("h4.panel-title", [
                                    m('a[data-target="#collapseTwo"
                                        data-toggle="collapse"
                                        data-parent="#bookingaccordion"]',
                                        "Booking details"
                                    )
                                ])
                            ]),
                            m('#collapseTwo.panel-collapse.collapse
                                [role="tabpanel" aria-labelledby="headingTwo"]',
                                "Collapsible booking detail form"
                             )
                        ])
                    ])
                ])
            ])
        ]);

生成的 HTML 完美显示 Accordion 初始状态,但点击标题 anchor 时没有响应(打开或关闭)。 我怀疑我生成的数据元素不正确,但我很困惑。

最佳答案

是的,问题出在 data-* 属性上,您必须将它们作为属性传递给 m 函数,如下所示:

m(
  'a', 
  {
    'data-target': "#collapseOne",
    'data-toggle': "collapse",
    'data-parent': "#bookingaccordion"
  },
  "Address and Contact details"
)

您必须对 aria-*role 属性执行相同的操作。

关于html - 使用 Mithril 为 Bootstrap Accordion 生成 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38575506/

相关文章:

html - 如何在两个引导列中垂直居中 block ?

javascript - 显示多张幻灯片,使用 Bootstrap 3.3.5 轮播移动一张

jquery - Mithril 和 jQuery 如何相互交互?

javascript - mithril hello world MVC 示例不起作用

html - bootstrap 如何防止视点低于 768px 时侧边栏折叠或消失

javascript - 单击后在 wix 上制作 html/java 代码消失

javascript - 如何将内联 svg(在 DOM 中)绘制到 Canvas 上?

javascript - 如何用 JavaScript 重新加载 div?

css - 引导多网格行的一致 100% 高度

javascript - Mithril : render component on event/dynamically