好吧,我正在尝试在单击我的按钮 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/