繁体   English   中英

jQuery检查元素是否在内部

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM