gpt4 book ai didi

javascript - KnockoutJS 绑定(bind)在 IE8 中失败

转载 作者:搜寻专家 更新时间:2023-11-01 04:44:25 24 4
gpt4 key购买 nike

下面的 knockout 绑定(bind)在真实浏览器中工作正常,但在 IE8(和兼容模式下的 IE9)中失败

<li data-bind="attr: { class: id() == $root.currentItem().id() ? 'active' : '' }"> 

enter image description here

有谁知道为什么,我该如何解决?


这是完整的代码,如果有帮助的话:

<div class="toc-outer">
<ol id="table-of-contents" data-bind="sortable: { data: list, template: 'listTemplate', allowDrop: false, isEnabled: false }" class="toc toc-tree"></ol>
</div>

<script id="listTemplate" type="text/html">
<li data-bind="attr: { class: id() == $root.currentItem().id() ? 'active' : '' }">
<div data-bind="attr: { class: 'dropdown' + (id() == $root.currentItem().parentId() ? ' active' : '') }">
<a href="#" class="toggle">
<i data-bind="visible:children().length > 0, attr: { class: 'icon-toggle icon-minus hide' + (id() == $root.currentItem().id() ? ' icon-white' : '') }"></i>
</a>
<a class="dropdown-toggle menu"
href="#"
data-bind="visible:$root.allowEditing"
data-toggle="dropdown">

<i data-bind="attr: { class: 'icon-menu icon-list-alt hide' + (id() == $root.currentItem().id() ? ' icon-white' : '') }"></i>
</a>
<a class="name" data-bind="attr: {href: hash}">
<i data-bind="visible: type() == 'settings', attr: { class: 'icon-type icon-settings icon-home' + (id() == $root.currentItem().id() ? ' icon-white' : '') }"></i>
<i data-bind="visible: type() == 'video', attr: { class: 'icon-type icon-video icon-facetime-video' + (id() == $root.currentItem().id() ? ' icon-white' : '') }"></i>
<i data-bind="visible: type() == 'data', attr: { class: 'icon-type icon-data icon-signal' + (id() == $root.currentItem().id() ? ' icon-white' : '') }"></i>
<i data-bind="visible: type() == 'file', attr: { class: 'icon-type icon-file icon-download-alt' + (id() == $root.currentItem().id() ? ' icon-white' : '') }"></i>
<i data-bind="visible: type() == 'test', attr: { class: 'icon-type icon-test icon-ok-sign' + (id() == $root.currentItem().id() ? ' icon-white' : '') }"></i>
<span data-bind="text:name"></span>
<span class="badge draft" data-bind="visible:status() == 'draft'">D</span>
</a>
<dl class="dropdown-menu" data-bind="visible:$root.allowEditing">
<dd><a href="#" data-bind="visible: parentId() !== 0 && !topLevelChild(), click: moveOut" data-toggle="pill" data-target="#item-pane" title="#{TocMoveOut}" class="moveItemOut">#{TocMoveOut}</a></dd>
<dd><a href="#" data-bind="visible: parentId() !== 0 && !firstSibling(), click: moveIn" data-toggle="pill" data-target="#item-pane" title="#{TocMoveIn}" class="moveItemIn">#{TocMoveIn}</a></dd>
<dd data-bind="visible: parentId() !== 0 && (!topLevelChild() || !firstSibling())" class="divider"></dd>
<dd><a href="#" data-toggle="pill" data-target="#item-pane" title="#{TocEdit}" class="edit">#{TocEdit}</a></dd>
<dd data-bind="visible: parentId() !== 0"><a href="#" class="remove">Remove</a></dd>
<dd class="divider"></dd>
<dd><a href="#page" data-toggle="pill" data-target="#item-pane" title="#{TocAddPage}" class="add">#{TocAddPage}</a></dd>
<dd><a href="#video" data-toggle="pill" data-target="#item-pane" title="#{TocAddVideo}" class="add">#{TocAddVideo}</a></dd>
<dd><a href="#file" data-toggle="pill" data-target="#item-pane" title="#{TocAddFile}" class="add">#{TocAddFile}</a></dd>
<dd><a href="#test" data-toggle="pill" data-target="#item-pane" title="#{TocAddTest}" class="add">#{TocAddTest}</a></dd>
<dd><a href="#data" data-toggle="pill" data-target="#item-pane" title="#{TocAddData}" class="add">#{TocAddData}</a></dd>
<dd class="divider"></dd>
<dd><a href="#library" data-toggle="pill" data-target="#item-pane" title="#{TocAddLibrary}" class="add add-from-library">#{TocAddLibrary}</a></dd>
</dl>
</div>
<span class="divider" data-bind="visible: type() == 'settings'"></span>
<ol class="toc-child" data-bind="sortable: {template: 'listTemplate', data:children, isEnabled: $root.allowEditing(), beforeMove: beforeTreeItemMove, afterMove: tocSorted, allowDrop: false }"></ol>
</li>
</script>

最佳答案

IE8 似乎被 class 这个词弄糊涂了,所以它需要用引号引起来。所以

<li data-bind="attr: { class: id() == $root.currentItem().id() ? 'active' : '' }">

成为

<li data-bind="attr: { 'class': id() == $root.currentItem().id() ? 'active' : '' }">

关于javascript - KnockoutJS 绑定(bind)在 IE8 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com