Kendo UI - как добавить и выбрать новую вкладку (в элементе управления TabStrip) с помощью javascript
Я создал функцию, которая открывает новую вкладку в моем элементе управления Kendo UI TabStrip:
function AddTab(targetUrl, title) {
$("#tabstrip").data("kendoTabStrip").append({ text: title, contentUrl: targetUrl });
}
это добавит вкладку в конец, но не будет выбирать ее. Как я могу выбрать его, чтобы стать активной вкладкой!? Мне нужно установить идентификатор при создании вкладки, а затем вызвать select(.. функция), или я могу сделать это в одну строку?
Мне нужно автоматически генерировать нагрузку ссылок, каждая из которых будет принимать другой заголовок и targetUrl.
4 ответов
попробуй такое
<div id="tabstrip">
<ul>
<li class="k-state-active">First Tab</li>
<li>Second Tab</li>
</ul>
<div>
First text
</div>
<div>
Second text
</div>
</div>
<input type="button" value="Add Tab" onclick="AddTab('google', 'http://google.com')" />
<script>
function AddTab(targetUrl, title) {
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
tabStrip.append({ text: title, contentUrl: targetUrl, content: "Your content" });
tabStrip.select((tabStrip.tabGroup.children("li").length - 1));
}
</script>
ссылка ссылке
попробуйте вот так. // из документации Kendo Ui tabstrip
var tabStrip = $("#tabStrip").data("kendoTabStrip");
tabStrip.insertAfter(
{ text: "New Tab" },
tabstrip.tabGroup.children("li:last")
);
для выбора
$(document).ready(function(){
var tabstrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
tabstrip.select(yourIndexoftheTab);
});
вы можете добавлять и удалять вкладки динамически с помощью kendoui..надеюсь этот код поможет один
<html>
<head>
<title> testing remote data </title>
<link href="styles/kendo.common.min.css" rel="stylesheet" />
<link href="styles/kendo.default.min.css" rel="stylesheet" />
<script src="js/jquery.min.js"></script>
<script src="js/kendo.all.min.js"></script>
</head>
<input type='text' id='tabname' name='tabname'>
<input type="button" value="Add Tab" onclick="AddTab()" />
<div id="tabstrip">
</div>
<script>
$(document).ready(function () {
$("#tabstrip").kendoTabStrip( {
animation: {
open: {
effects: "fadeIn"
}
},
select: function(element){selecttab(element)}
});
});
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(targetUrl) {
var title = jQuery("#tabname").val();
var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
tabStrip.append({ text: title,
content: "<div class='showtabcontent dhtmlgoodies_aTab' style='height: auto; display: block;' id='tabViewsubtabname'><div style='float:right;'><input type='button' value='X' onClick='closeTab($(this).closest(\"li\"));'></div><br><label class='evtgrouplables'>Description</label><br><textarea name='dynamic_other_content[]' id='dynamic_other_content' class='textareaeditor'></textarea><input type='hidden' name='dynamic_other_title[]' value=''/></div>"
});
tabStrip.select((tabStrip.tabGroup.children("li").length - 1));
}
function closeTab(vari){
var tabStrip = $('#tabstrip').kendoTabStrip().data("kendoTabStrip");
tabStrip.remove(tabStrip.select());
tabStrip.select((tabStrip.tabGroup.children("li").length - 1));
}
</script>
код для добавления и выбора новой вкладки:
var tabs = $('#tabs').data('kendoTabStrip');
var tabNum = tabs.items().length;
var closeButton =
"<span unselectable='on' class='k-icon k-delete'>delete</span>";
tabs.append( {
encoded: false, //allow HTML
text: team.name + ' ' + closeButton,
contentUrl: 'teamschedule.html'
});
// make new tab the active tab
tabs.select(tabNum);
var tab = $(tabs.items()[tabNum]);
//attach delete handler to the delete icon
tab.on('click','.k-delete', tab, $scope.removeTab);
вот код для удаления вкладки и выбора предыдущей (если была выбрана удаленная вкладка):
$scope.removeTab = function(e) {
var tabs = $('#tabs').data('kendoTabStrip');
if (e.data.hasClass('k-state-active')) {
//select previous tab if the active tab is removed
tabs.select(e.data.prev());
}
tabs.remove(e.data);
}
Я использую angular, следовательно, использование $ scope.