【发布时间】:2019-06-23 11:26:21
【问题描述】:
我正在尝试制作一个基本上是 Kendo tabstrip 的网络部件。它自己有一个简单的 ul,并使用 javascript 代码将外部 html 文件链接到每个相关的 li。到目前为止它工作正常。 但现在我希望能够调用函数来添加或删除我选择到标签条的任何文件,但到目前为止它不起作用。
我已经搜索并找到了该工作的一些功能,但这个更接近我的想法。 当我使用添加按钮时,标签条已创建,但 contecturl 链接不起作用,它只是一个空标签。
<------------------------ web-part ------------------------>
<div class="row">
<input type='text' id='tabname' name='tabname'>
<input type='text' id='tabLink' name='tabLink'>
<input type="button" value="Add Tab" onclick="AddTab()" />
<input type="button" value="Remove Tab" onclick="closeTab()" />
</div>
<div id="tabstrip">
<ul id="tabStripUL">
<li class="k-state-active">tab1</li>
<li>tab2</li>
<li>tab3</li>
</ul>
<------------------------ Javascript ------------------------>
$(document).ready(function () {
InitLoadTabstrip();
});
function InitLoadTabstrip() {
var ts = $("#tabstrip").kendoTabStrip({
animation: { open: { effects: "fadeIn" } },
select: function(element){selecttab(element)},
contentUrls: [
'Page1.html',
'Page2.html',
'Page3.html',
]
}).data('kendoTabStrip');
}
function selecttab(element) {
var tabStrip1 = $('#tabstrip').kendoTabStrip().data("kendoTabStrip");
var item = tabStrip1.element.find("li:contains("+$(element.item).text()+")"),
itemIdx = item.index();
$("#tabstrip").data("kendoTabStrip").select(itemIdx);
}
function AddTab() {
var title = jQuery("#tabname").val();
var Address = jQuery("#tabLink").val();
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
tabStrip.append({
text: title,
contentUrl: Address
});
tabStrip.select((tabStrip.tabGroup.children("li").length - 1));
}
function closeTab() {
var tabStrip = $('#tabstrip').kendoTabStrip().data("kendoTabStrip");
tabStrip.remove(tabStrip.select());
tabStrip.select((tabStrip.tabGroup.children("li").length - 1));
}
它应该获取一个名称和一个地址,然后将该选项卡添加到选项卡条中或根据按钮将其删除。 如果有人可以提供帮助,我将不胜感激。
我试图删除按钮,并简单地向 addTab 函数添加一个参数来添加被调用的每个页面。像这样:
function addTab(tabName) {
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
if (tabName == "name1") {
tabStrip.append({
text: "title1",
contentUrl: 'page1.html',
});
}
else if (tabName == "name2") {
tabStrip.append({
text: "title2",
contentUrl: 'page2.html',
});
}
tabStrip.select((tabStrip.tabGroup.children("li").length - 1));
}
然后这样称呼他们:
$(document).ready(function () {
InitLoadTabstrip();
});
function InitLoadTabstrip() {
var ts = $("#tabstrip").kendoTabStrip({
animation: { open: { effects: "fadeIn" } },
select: function(element){selecttab(element)},
contentUrls: [
]
}).data('kendoTabStrip');
addTab("name1");
addTab("name2");
}
现在的问题是,当我尝试添加多个选项卡时,一个接一个地添加(如代码),tabstrip 将两个列表项设置为活动状态,它会破坏 tabstrip。我认为这可能是因为 'tabstrip.select' ,但我真的不明白出了什么问题。
【问题讨论】:
标签: javascript jquery kendo-ui