Jquery检查是否在元素内
Jquery to check if inside element
我试图添加一个类到一个元素,如果用户已经点击里面。
所有通常的规则都适用——"inside"意味着它可以在子节点、孙子节点等的内部。
如果在里面,我需要添加一个类-如果在外面的类应该被删除。
我已经拼凑了这个例子,它可以工作,但作为一个非javascript的人,我希望得到一些反馈,关于它是否是一个合理的方法,如果它可以被改进,我参考jquery/javascript性能。
欢迎指教。
$("body").click(function (e) {
$fs = $(e.target).closest("fieldset.expand");
if ($fs.length) {
$fs.addClass("focus");
}
else {
$("fieldset.expand").removeClass("focus");
}
});
<body>
<fieldset class="expand">
<input type="text" />
<input type="text" />
<input type="text" />
</fieldset>
</body>
使您的fieldset
可聚焦(但不是表列),使用tabindex
属性为负值。然后使用focusin focusout
事件设置逻辑:
$('fieldset.expand').on('focusin focusout', function() {
$(this).toggleClass('focus', $(this).find('*').addBack().is(':focus'));
});
fieldset.focus {
outline: 0;
background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<fieldset tabindex="-1" class="expand">
<input type="text" />
<input type="text" />
<input type="text" />
</fieldset>
相关文章:
- javascript数组元素是否知道其封闭数组
- 如何检查元素是否在iframe中
- 检查元素是否将状态从隐藏更改为可见
- 确定元素是否存在
- 消隐数组元素是否生成自己的属性
- 检查一个元素是否有一个类与另一个类总是返回true
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- 如何查找具有该ID的元素是否存在
- 检查元素是否已单击或hasClass
- 使用webdriver和selenium验证元素是否不存在
- 如何使用jQuery实时检查元素是否为空
- html元素是否具有内置的属性
- 检查元素是否有内容
- 使用 javascript 检查元素是否包含子标记而不是文本
- JavaScript 在 JSON 对象中移动如何判断元素是否存在
- 检查两个或多个 DOM 元素是否重叠
- 谷歌地球插件 — 如何检查带有 ID 的元素是否已经存在
- 检查元素是否悬停在上面
- DOM 元素是否可以具有其值为任意对象(而不是字符串)的属性
- 如何检查DOM元素是否已完全加载