选择单击的图元,而不是其父图元
Selecting the clicked element and not its parents
我有一堆嵌套列表:
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3
<ul>
<li>child-1</li>
<li>child-2
<ul>
<li>grand-child 1</li>
</ul>
</li>
</ul>
</li>
</ul>
使用jQuery,单击或悬停,我想使用项(li)。但它给了我它的父母。如:如果我点击(或悬停)grand-child 1,$(this)返回ITEM-3(父级的父级)
我的jQuery代码:
$('ul li').live('click', function(e) {
someVar = $(this).data("dataname"); // (can be .attr(""), etc.);
});
当点击任何一个Li时,我怎么能使用那个特定的,而不是它嵌套的父项?
这有帮助吗。如果您看到console.log,它只返回当前单击的项目。请在此处阅读stopPropagation的文档。
"文档声明stopPropagation阻止事件在DOM树中冒泡,阻止任何父处理程序不会收到事件通知。"
我还将live更新为on,因为live从1.7 开始就被弃用了
$('ul li').on('click', function(e) {
e.stopPropagation();
console.log($(this));
});
我想下面就是你想要的,
$('ul li').live('click', function(e) {
e.stopPropagation();
someVar = $(this).data("dataname");
});
e.stopPropagation();
停止传播到其他匹配ul li
的任何事件
注意:如果使用jQuery v1.7
,请使用.on
,因为.live
已弃用。
$(document).on('click', 'ul li', function(e) {
e.stopPropagation();
alert($(this).text()); // (can be .attr(""), etc.);
});
DEMO
相关文章:
- d3.js条形图未根据单击事件进行更新
- 使用共享工具提示时,单击Highcharts柱形图会返回不正确的序列索引
- 添加ng单击到highcharts ng柱状图xAxis标签
- 传单问题:使折线的图层组不可单击
- 高图热图:单击按钮或复选框时选择所有单元格
- D3js 饼图单击事件不起作用
- 单击图元模拟Esc键
- 如何通过在灯箱外单击或在与图像贴图组合时点击esc退出灯箱
- 如何通过单击Highchart图中的列/栏打开新窗口/选项卡
- 融合图表 - 在柱形图2D图表中单击时更改条形的颜色
- 如何在用户单击时确定条形图(Highchart)中条形的值
- 高图表没有对条形图/列单击进行深入分析
- 高图表图选项单击事件仅在鼠标停留在块中时触发一次
- 获取当前单击的相对于图元的坐标
- 选择单击的图元,而不是其父图元
- 模拟图元的单击
- 单击不处理新插入的图元的事件
- 不能给高图中单击的不同条形图项提供不同的值
- 在具有多个系列的高图上单击事件
- 在高图中单击系列时绘制垂直线