gpt4 book ai didi

jquery-ui - 如何使用 knockout.js 添加和删除 jqueryui 选项卡

转载 作者:行者123 更新时间:2023-12-04 18:12:54 24 4
gpt4 key购买 nike

我从 this sample codes 得到提示

附上代码here

<button id='add'>add</button>

<div data-bind="template: 'tabsTmpl'"></div>
<script id="tabsTmpl" type="text/html">
<div data-bind="jqTabs: { fx: { } }">
<ul>
{{each tabs}}
<li>
<a href="#tab-${id}">${id}</a>
</li>
{{/each}}
</ul>
{{each tabs}}
<div id="tab-${id}" >${id}</div>
{{/each}}
</div>
</script>
<script>
ko.bindingHandlers.jqTabs = {
init: function (element, valueAccessor) {
var options = valueAccessor() || {};
$(element).tabs(options);
}
};

function TabItem(id) {
this.id = ko.observable(id);
}

var viewModel = {
tabs: ko.observableArray([new TabItem(1), new TabItem(2), new TabItem(3)])
};


$(function () {
ko.applyBindings(viewModel);

$('#add').click(function () {
viewModel.tabs.push(new TabItem(viewModel.tabs().length + 1));
});
});
</script>

以上代码作者使用jquery模板引擎,但我想使用knockout.js的原生模板引擎,所以我将html代码更改如下:
<div>
<div data-bind="jqTabs: { fx: { } }">
<ul data-bind="foreach: tabs">
<li>
<a data-bind="attr:{href:'#tab-' + id()}, text:id"></a>
</li>
</ul>
<!-- ko foreach: tabs -->
<div data-bind="attr:{id:'tab-'+id()}, text:id"></div>
<!-- /ko -->
</div>
</div>

但是,它不起作用。
我对原生模板引擎做错了什么?
提前致谢。

最佳答案

这是一个正常运行的版本:http://jsfiddle.net/NLGm8/32/

关于 Knockout 与 jQuery 集成的最棘手的事情之一是插件期望 DOM 元素存在的时间以及 Knockout 将呈现它们的时间。

我经常发现围绕插件初始化的 setTimeout 可以解决问题,它在这里做到了。

关于jquery-ui - 如何使用 knockout.js 添加和删除 jqueryui 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260829/

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