尝试让菜单 li
项向右展开,在 click
事件中显示搜索表单,然后在单击搜索表单本身之外的任何内容时再次关闭。我已经设法让扩展工作,但无法弄清楚崩溃。我知道已经有很多关于此的问题,但我觉得我太累了,无法理解它……感谢任何帮助。
更新:
设法通过 mouseleave()
事件获得效果:http://jsfiddle.net/C3YCP/31/
但还是出于好奇,我无法通过某种点击事件让它崩溃?
HTML:
<li id="search">
<a href="#" title="Search" id="searchA">Search</a>
<div id="searchWrap">
<form>
<fieldset>
<input type="text">
</fieldset>
</form>
</div>
</li>
JS:
$("#search").click (function() {
$(this).animate({width:'225px'},200).css("background-color","#e5e6e7");
$("#searchA").animate({width:'180px'},200)','color':'#4d4d4d'});
$('#searchWrap').show("slide", 200);
$("#search input").css({'background-color':'#fff'});
});
$("#searchWrap").click(function() {
return false;
});
CSS:
#search { width: 112px; }
#searchA { color: #fff; padding: 18px 35px 53px 9px; }
#searchWrap { position: absolute; top: 53px; left: 10px; display: none; }
#search form { padding: 0 10px 0 0; }
#search fieldset { border: none; }
#search input { width: 200px; height: 20px; border: 1px solid #fff; background-color:#4D4D4D; outline: none; color: #4D4D4D; padding: 0 0 0 3px;}
最佳答案
试试这个:
$("#search").click(function() {
$(this).animate({width:'225px'},200).css("background-color","#e5e6e7");
$("#searchA").animate({width:'180px'},200).css({'background-image':'url(images/nav-searchgrey.png)','color':'#4d4d4d'});
$('#searchWrap').show("slide", 200);
$("#search input").css({'background-color':'#fff','border-color':'#BBBDBF'});
$('body :not(#searchWrap)').one(function() {
// Hide search.
});
});
关于jquery 向右展开 <li> 向左折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8484195/