gpt4 book ai didi

javascript - 单击时获取节点的索引

转载 作者:行者123 更新时间:2023-11-28 00:59:49 25 4
gpt4 key购买 nike

我正在尝试使用 delegate 以及 indexOf 方法获取 YUI 中选项卡的索引 - 具体来说,我想在单击图像时删除选项卡位于 li 元素内部:

var tabView = new Y.TabView({
srcNode: '#data-table'
});
...
//creating tabs
...
var removeTab = function(e) {
var tabList = e.container.all('li'); //returns a list of the 'li' elements/tabs
tab = tabView.indexOf(e.currentTarget);
alert(tab); //returns -1 (node not found)
//tabView.remove(tab);
}
Y.one('#data-table').delegate('click', removeTab, 'img');//on click of the img, launch removeTab

我不相信 YUI 有更简单的方法来做到这一点 - 我发现大多数指南都已经过时,或者没有以相同的方式实现删除选项卡。

最佳答案

问题在于委托(delegate)处理程序设置为 img元素-所以e.currentTarget将引用<img>元素(被单击的)。

e.container.all('li') ,但是,您检索 <li> 的集合元素。当然,这个集合中没有元素可以等于 <img> 。这就是为什么indexOf失败。

一种可能的解决方案是找到 <li> <img> 的父级首先元素,然后检查其索引:

var liClicked = e.currentTarget.ancestor('li');
var tabIndex = tabList.indexOf(liClicked);

关于javascript - 单击时获取节点的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25752029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com