【问题标题】:Select first visible tab index选择第一个可见的标签索引
【发布时间】:2023-04-04 07:43:01
【问题描述】:

我有一个个性化的选项卡指令,将活动选项卡设置为第一个元素:

    jQuery($element).data(`kendoTabStrip`).select(0);

但是现在指令接收一个隐藏属性,当不存在时设置 ng-show=false

  Reflect.defineProperty($scope.tabs.tabs[name], `liElement`, {
            enumerable: false,
            writable: false,
            value: angular.element(`<li ng-show="false">{{tabs.tabs[\'' + name + '\'].title}}</li>`),
  });

使第一个可见元素可能与第一个选择的元素不同,我尝试了

const index = $( "li" ).index($("li:visible:first"));
jQuery($element).data(`kendoTabStrip`).select(index);

但是索引总是返回0,如何根据ng-hide属性获取索引?

【问题讨论】:

    标签: jquery angularjs kendo-tabstrip


    【解决方案1】:

    试试这个:

    const index = $( "li" ).index($("li[ng-show='true']:first"));
    

    ng-show 或 ng-hide 不会改变“可见性”属性。它基于“显示”属性隐藏元素

    【讨论】:

    • 这部分工作,但只有当它是页面中唯一的一个选项卡数组时,我的在层次结构中排名第三,所以它一直指向 DOM 的第一个选项卡,你知道我该怎么做指向每个选项卡索引而不是 DOM 的第一个?感谢您的帮助。
    • 即使使用 const index = $("ul").find("li[ng-show='true']:first").index();它仍然指向页面的第一 li
    • 代替这个 $("ul") 尝试使用当前选择的标签
    • 我会认真建议不要使用 DOM 操作,而是使用 jQuery 这样的 angular......在 li 元素上设置 ng-class 并根据 ng-repeat 上的 $index 进行更改li 元素,然后在 css 中设置类的样式
    猜你喜欢
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 2019-02-08
    相关资源
    最近更新 更多