切换焦点以跟随toggleClass

加布里埃尔·卢埃斯

我正在使用jQuerytoggleClass()和CSS来显示和隐藏表单的搜索表单上进行简单的显示/隐藏这很容易,就像:

$('#site-search-toggle').click(function(e){
    $('#site-search').toggleClass('search-open');
    e.preventDefault()
});

我想做的但是很难弄清楚的是,在显示表单时将焦点放在搜索输入上,而在隐藏表单时将焦点从搜索输入上移开。

添加焦点很容易:

$('#site-search-toggle').click(function(e){
    $('#site-search').toggleClass('search-open');
    $('#site-search input[type="search"]').focus();
    e.preventDefault()
});

但是我仍然停留在如何$('#site-search-toggle')再次单击隐藏表单时将其删除的想法。

加布里埃尔·卢埃斯

好吧,我想出了这个办法,或者至少我找到了一种方法来完成我需要做的事情。我添加了第二个类,search-closed切换两个类,然后使用每个类来聚焦或模糊该字段,如下所示:

$('#site-search').addClass('search-closed');

$('.site-search__toggle').click(function(e){
    // toggle both classes
    $('#site-search').toggleClass('search-open search-closed');

    // set focus when form is visible, .search-open
    // use setTimeout to make sure the cursor actually gets in there
    // don't know why, but it works
    setTimeout (function(){
        $('#site-search.search-open .site-search__input').focus();
    }, 20);

    // blur when the form is not visible, .search-closed
    $('#site-search.search-closed .site-search__input').blur();

});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

切换焦点以跟随toggleClass

来自分类Dev

切换+ toggleClass

来自分类Dev

toggleClass问题,切换图标无法切换

来自分类Dev

SAPUI5切换焦点

来自分类Dev

切换和焦点元素

来自分类Dev

jQuery .toggleClass不切换CSS类

来自分类Dev

使用jquery .toggleClass()时切换虚线边框

来自分类Dev

在功能完成之后,toggleclass()才会切换

来自分类Dev

在不使用toggleclass的情况下切换CSS

来自分类Dev

jQuery-:切换Windows / Tab时触发焦点

来自分类Dev

如何在切换框架时验证WebDriver的焦点

来自分类Dev

如何使用Python在iframe中切换Selenium焦点

来自分类Dev

在列表SwiftUI 2.0中的TextField之间切换焦点

来自分类Dev

切换键盘布局时Firefox失去焦点

来自分类Dev

创建新的终端窗口但不切换焦点

来自分类Dev

如何根据焦点切换输入类?

来自分类Dev

在 Angularjs 中的字段之间切换焦点

来自分类Dev

jQuery toggleClass的速度在向后切换时不会向后滑动

来自分类Dev

导航栏切换按钮不适用于toggleClass(“ active”);

来自分类Dev

jQuery ToggleClass不在两个类之间切换

来自分类Dev

切换与切换

来自分类Dev

切换setLineDash()

来自分类Dev

切换JPanel

来自分类Dev

切换值

来自分类Dev

切换JPanel

来自分类Dev

切换列?

来自分类Dev

切换setLineDash()

来自分类Dev

切换硬盘

来自分类Dev

拦截Tab键按下可手动管理焦点切换