7

我创建了一个函数,可以在我的 Kendo UI TabStrip 控件中打开一个新选项卡:

function AddTab(targetUrl, title) {
        $("#tabstrip").data("kendoTabStrip").append({ text: title, contentUrl: targetUrl });
    }

这会将选项卡添加到末尾,但不会选择它。我怎样才能选择它成为活动标签!?创建选项卡时是否需要设置一个id,然后调用select(..)函数,或者我可以一行完成吗?

我需要自动生成大量链接,每个链接都会采用不同的标题和 targetUrl。

4

4 回答 4

8

试试这个

<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>

参考链接

于 2013-02-19T12:06:00.680 回答
3

试试这样。// 来自文档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);
});
于 2013-02-19T11:39:01.747 回答
3

您可以使用 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>
于 2013-07-27T08:42:06.823 回答
0

附加并选择新选项卡的代码:

  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);
}

I'm using angular, hence the use of $scope.

于 2014-10-14T20:31:03.587 回答