如何隐藏* single * MVC / Kendo tabstrip标签?

时间:2014-05-07 19:03:51

标签: javascript jquery kendo-ui telerik

如何隐藏MVC / Kendo UI标签上的单个标签?

我想根据条件隐藏标签。我的jQuery代码是这样的:


        //authUser is a hidden input whose value is set in the controller and passed into the view

        if ($('#authUser').val() == 'False') //hide the last tab
        {
            $($("#tabstrip").data("kendoTabStrip").items()[6]).attr("style", "display:none");
        }

当我运行代码时,如果authUser为False,我在执行的代码行上会出现以下错误:

JavaScript运行时错误:无法获取属性'项目'未定义或空引用

想法?

3 个答案:

答案 0 :(得分:7)

'items'未定义的事实意味着您从未在第一时间正确选择了tabstrip。您的CSS选择器是错误的(您确定将其命名为tabstrip吗?)或者您没有正确遵循Kendo方法名称。

我发现以下两种隐藏最后一个标签的方法:

隐藏最后一个标签元素

var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
//Find the last tab item's index from the items list
var lastIndex = tabStrip.items().length - 1;
//Use jQuery's hide method on the element
$(tabStrip.items()[lastIndex]).hide();

使用Kendo的标签删除方法

我认为以下更合适。为什么不使用tabstrip的remove方法并将其从DOM中完全删除,因为用户不应该访问它?

var tabStrip = $("#tabstrip").kendoTabStrip().data("kendoTabStrip");
tabStrip.remove("li:last");

答案 1 :(得分:1)

我只是愚蠢.... 我在代码中看了一些,我从

中省略了kendoTabStrip()字(粗体)

$($("#标签栏"。)的 kendoTabstrip()。数据(" kendoTabStrip"。)项目()[6])。ATTR ("风格""显示:无&#34)

即。而不是(正确地)拥有:

$($("#tabstrip").kendoTabStrip().data("kendoTabStrip").items()[6]).attr("style","display:none") 

我有:

$($("#tabstrip").data("kendoTabStrip").items()[6]).attr("style","display:none") 
德鲁,谢谢你的努力。有时我只能在墙上砸我的头,直到我看到我做了什么。

答案 2 :(得分:0)

我正在使用显示/隐藏功能,但是由于某种原因,最后一个再次显示的选项卡完全是空的。

基本上,如果我隐藏所有选项卡然后还原,然后一个接一个,则每个都是空的。

我将attr样式用于none / flex来隐藏/显示,现在它可以完美地工作了。 看来他们在基本功能上仍有一些重大错误。 (使用Kendo 2020 Q1)