javascript - 点击错误时展开搜索输入栏

标签 javascript jquery css

好吧,我正在尝试在单击我的按钮 class="expand"时扩展搜索输入。 我已经有了这个工作,但它至少有两个错误。 第一个是当我单击按钮以展开输入时,输入会展开但随后会立即收缩。我不明白为什么会这样。 第二个错误是无论我在我的页面上单击什么地方,输入都会立即展开和收缩。我认为是使用 $('html').click(function() 但我看不到其他方法可以做到这一点。 你能帮点忙吗?

我的 jQuery:

 <script type="text/javascript">        
        $(function() {
            $('button.expand').click(function() {
                $('#test').width(0).show().animate({width: 180}, 500);
            });
            $('html').click(function() {
            $('#test').width(180).show().animate({width: 0}, 500);
        });
        });  
    </script> 

我的 Html:

<nav id="menu">
        <ul>

            <li><a href="Home.html">Home</a></li>
            <li><a href="About.html">About</a></li>


            <li>
                  <div id="search-container">
        <span id="search" >
             <form  name="form1" >
                <input id="test" type="search" placeholder="Search..." required="required" onfocus="if(this.placeholder == 'Search...') {this.placeholder=''}" onblur="if(this.placeholder == ''){this.placeholder ='Search...'}" />
                <button class="expand" type="submit"><i class="fa fa-search"></i></button>
             </form>
        </span> 
    </div>
            </li>
           </ul>
    </nav>   

我的 CSS: CSS:

 .form-container input {display:none;}

最佳答案

如何控制#test可见性的状态?

$(function() {
    $('button.expand').click(function() {
        $('#test').width(0).show().animate({width: 180}, 500);
        $('#test').addClass("visible");
    });
    $('html').click(function() {
        if($('#test').hasClass("visible")){
            $('#test').width(180).show().animate({width: 0}, 500).removeClass("visible");
        }
    });
});  

关于javascript - 点击错误时展开搜索输入栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22518864/

相关文章:

javascript - 页面加载 1/5 后恢复正常

javascript - 为什么我不能编辑附加的文本区域?

javascript - 使用javascript的文本区域中光标的当前x,y坐标

javascript - 如何将值从 href 传递到 input

javascript - 单击或按 Enter 键即可使用的按钮

javascript - 如何使元素不固定?

c# - 需要点击按钮两次来编辑和更新gridview数据

html - 如何对齐顶部的表格单元格内容?

css - JQuery - 更改 CSS 背景图片

javascript - 如何在另一个DIV中预览DIV?