当相关的输入字段被聚焦/模糊时,我如何从每个列表项中只显示/隐藏子项“. link”?
类似下面的东西,但我不确定如何应用(这)到它?
$('.input').focus(function () {
$('li').next('.link').show();
});
$('.input').blur(function () {
$('li').next('.link').hide();
});
标记:
<ul>
<li>
<input class="input" value="1">
</li>
<li">
<a class="link" href="#"></a>
</li>
</ul>
<ul>
<li>
<input class="input" value="2">
</li>
<li>
<a class="link" href="#"></a>
</li>
</ul>
etc.
2条答案
按热度按时间kqhtkvqz1#
下面的代码假定标记的结构不会改变。可以使用
.parent()
获取父元素,.next()
获取下一个兄弟元素,.children()
获取子元素。您可以将两个事件处理程序合并为一个,并通过将事件处理程序委托到DOM树的更高位置来提高效率:请注意,事件类型检查正在查找
focusin
- jQuery似乎实际上绑定到focusin
和focusout
,而不是focus
和blur
。q3aa05252#
如果你的结构肯定是如上所述,那么你可以简单地使用parent和next。