gpt4 book ai didi

javascript - jQuery - 显示/隐藏搜索框

转载 作者:太空狗 更新时间:2023-10-29 14:06:20 29 4
gpt4 key购买 nike

我编写了一些 jQuery 来在单击 div 时滑动打开搜索框。基本上,单击它会显示一个最初隐藏的 div,并且在该 div 内部是一个搜索框和一个关闭按钮。这一切都很好。然而不起作用的是关闭按钮。我的猜测是关闭按钮没有隐藏那个 div,因为它本身在 div 中。这是我得到的,这是一个 jsfiddle .

HTML

<ul class="tert-nav">
<li><img alt="" border="0" src="images/icon-cart.png" width="16" height="16" /></li>
<li><img alt="" border="0" src="images/icon-tickets.png" width="16" height="16" /></li>
<li class="searchit">
<img alt="" border="0" class="searchicon" src="images/icon-search.png" width="16" height="16" />
<div class="searchbox">
<img alt="" border="0" class="closesearch" src="images/icon-close.png" width="16" height="16" />
<input placeholder="search..." type="text" />
<input type="submit" value="" />
</div>
</li>
</ul>

jQuery

$(document).ready(function() {

// Search
$('ul.tert-nav li.searchit').click(function() {
$(this).addClass('search');
$('.searchbox').fadeIn();
$('ul.tert-nav li img.searchicon').hide();
});

$('ul.tert-nav li.searchit img.closesearch').click(function() {
$('.searchbox').hide();
$('ul.tert-nav li').removeClass('search');
});

})

CSS

ul.tert-nav {
float: right;
position: absolute;
margin: 0;
padding: 0;
right: 0;
top: 0;
list-style: none;
}

ul.tert-nav li {
float: right;
width: 26px;
height: 28px;
background: #3c3c3c;
text-align: center;
margin-left: 2px;
cursor: pointer;
transition: all .2s ease;
-o-transition: all .2s ease;
-moz-transition: all .2s ease;
-webkit-transition: all .2s ease;
}

ul.tert-nav li:hover {
background: #000;
}

ul.tert-nav .search {
width: 246px;
text-align: left;
cursor: default;
}

ul.tert-nav .search:hover {
background: #3c3c3c;
}

ul.tert-nav .searchbox {
display: none;
width: 100%;
}

ul.tert-nav .searchbox .closesearch {
float: left;
margin: 6px 4px 0px 4px;
cursor: pointer;
}

ul.tert-nav .searchbox .closesearch:hover {
opacity: 0.8;
}

ul.tert-nav .searchbox input[type=text] {
float: left;
width: 184px;
height: 24px;
padding: 0px 0px 0px 10px;
margin: 2px 0px 0px 0px;
border: none;
background: url(images/search-bg.png) no-repeat;
outline: none;
}

ul.tert-nav .searchbox input[type=submit] {
float: left;
width: 26px;
height: 24px;
margin: 2px 0px 0px 0px;
padding: 0px;
border: none;
background: url(images/search-btn.png) no-repeat;
outline: none;
cursor: pointer;
}

另外,这里有一张初始状态和点击/打开状态的示例图片,让您直观地了解我正在尝试做什么。谢谢!

enter image description here

最佳答案

因为关闭按钮在 .searchit 框内,所以第一个处理程序也紧随其后被触发。在关闭处理程序期间停止点击事件的传播,它应该可以工作:

$('ul.tert-nav li.searchit img.closesearch').click(function(e) {
e.stopPropagation();
$('.searchbox').hide();
$('ul.tert-nav li').removeClass('search');
});

关于javascript - jQuery - 显示/隐藏搜索框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716546/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com