[英]Jquery to check if inside element
如果用户在元素中单击,我试图将一个类添加到元素中。
所有通常的规则都适用-“内部”表示它可以在孩子,孙子等内部。
如果在内部,则需要添加一个类-如果在外部,则应删除该类。
我拼凑了这个示例,该示例可以正常工作,但是作为一个非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
可聚焦(但不tabbable),使用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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.