jQuery使用两个事件隐藏输入-单击和模糊?

jQuery使用两个事件隐藏输入-单击和模糊?,jquery,onclick,blur,Jquery,Onclick,Blur,我试图通过css转换获得一个显示和隐藏的输入字段。我已经弄清楚了css和html部分。我希望输入在单击div时切换显示/隐藏。我还希望它隐藏,如果输入失去焦点(模糊) 除了第二次单击div外,它几乎可以正常工作。模糊在单击事件之前激发。因此,模糊事件会删除该类,但单击事件会重新应用该类。我认为标准顺序是模糊优先。因此,它基本上是按照预期工作的,只是没有达到预期的效果 有效的状态。 单击div,输入显示应用焦点,以便用户可以开始键入 单击输入外部,输入将隐藏移除焦点 不起作用的状态 再次单击div

我试图通过css转换获得一个显示和隐藏的输入字段。我已经弄清楚了css和html部分。我希望输入在单击div时切换显示/隐藏。我还希望它隐藏,如果输入失去焦点(模糊)

除了第二次单击div外,它几乎可以正常工作。模糊在单击事件之前激发。因此,模糊事件会删除该类,但单击事件会重新应用该类。我认为标准顺序是模糊优先。因此,它基本上是按照预期工作的,只是没有达到预期的效果

有效的状态。

  • 单击div,输入显示应用焦点,以便用户可以开始键入
  • 单击输入外部,输入将隐藏移除焦点
  • 不起作用的状态

  • 再次单击div以隐藏输入。由于在输入外部单击,因此将触发模糊事件。并且,单击事件将重新应用该类。所以,它开始隐藏,但随后又暴露出来
  • 我相信有办法做到这一点。我现在脑子乱糟糟的。感谢您的帮助

    $('.clickme').on({
            click: function() {
    
                $('.wrapper').toggleClass("left");
                if ( $(".wrapper").hasClass("reveal") ) {
                    $('.large input').focus();
                }
    
            }
    
        });
        $('.large input').on({ blur: function() {
                $('.wrapper').removeClass("reveal");
    
            }
    
        });
    

    如果在单击之前触发模糊,则可以在模糊处理程序中防止事件冒泡:

    event.stopPropagation()
    

    请您再添一把小提琴好吗?我想你可能也需要考虑加入这个类。您的代码似乎过于复杂。