0

我正在使用 kendo Tabstrips,我在加载标签时遇到问题

Html.Kendo().TabStrip().Name("TabStrip")
           //.Animation(e=> e.Open(open => open.Fade(FadeDirection.In)))
           //.Events(e => e.Select("OnSelect")
           //.ContentLoad("ContentTabStripLoad")
           //.Activate("Tabstrip_select")
           //)

           .Items(parent =>
           {
               parent.Add().Text("Sales").Selected(true)
                   .LoadContentFrom("_SalesItems", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID });
               if (Model.EnableMixes == true)
               {
                   parent.Add()
                       .Text("Sales of structural mixes")
                       //.Enabled(@Model.EnableMixes)
                       .LoadContentFrom("_SalesOfMixesItems", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID });
                   //.Selected(@Model.TabNameToSelect == "Sales of structural mixes" ? true : false);
               }

               parent.Add()
                   .Text("Customer/market costs")
                   .Enabled(@Model.EnableCommercialCosts)
                   .LoadContentFrom("_CustomerCosts", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID });
               //.Selected(@Model.TabNameToSelect == "Customer/market costs" ? true : false);

               if (Model.EnableMixes == true)
               {
                   parent.Add()
                       .Text("Product mixes")
                       .Enabled(@Model.EnableMixes)
                       .LoadContentFrom("_ProductMixProducts", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID });
                   //.Selected(@Model.TabNameToSelect == "Product mixes" ? true : false);
               }

               if (Model.EnableCustomDriverItems == true)
               {
                   parent.Add()
                       .Text("Custom driver items")
                       .Enabled(@Model.EnableCustomDriverItems)
                       .LoadContentFrom("_CustomDriverItems", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID });
                   //.Selected(@Model.TabNameToSelect == "Custom driver items" ? true : false);
               }
           })
       .Render();

我已经使用选择选项来选择默认选项卡并且它工作正常,然后如果我单击其他选项卡然后基础操作被触发两次,我无法阻止它,我不知道为什么它被调用两次。我已经写了以下几行来阻止它第二次触发但没有用。单击选项卡时,将调用相应的操作,然后我将调试器打到下面的代码中,并且再次调用该操作。

tabStrip.tabGroup.on('click', 'li', function (e) {
            debugger;
            return false;
        });

有什么解决方法吗

4

1 回答 1

1

我以前也发生过这种情况,这是因为我在处理某些选项卡的点击的函数中创建了整个选项卡的附加副本。每次单击处理程序运行时,都会创建一个新副本,这将对应于第一次单击任何未加载的选项卡时调用该操作的次数。

糟糕,糟糕的代码:

var tabStrip = $('#tabstripTemplate').kendoTabStrip().data("kendoTabStrip");

已修复,只需参考现有的 tabstrip:

var tabStrip = $('#tabstripTemplate').data("kendoTabStrip");
于 2015-09-30T18:19:23.597 回答