<div class="search_on" id="search-item">
<span class="text">one</span>
</div>
<ul class="search_item" style="display: none;">
<li><a href="#">one</a></li>
<li><a href="#">two</a></li>
<li><a href="#">three</a></li>
</ul>
jQuery代码:
$(document).ready(function(){
$('#search-item .text').toggle(function () {
$('ul.search_item').show();
}, function () {
$('ul.search_item').hide();
});
$('.search_item li a').click(function(){
$('ul.search_item').hide();
$('#search-item .text').text($(this).text());
return false;
});
});
点击a
链接后,上述值会按预期更改为2。但是来自改变的I的值应该点击两次,底部ul
列表将显示。为什么呢?
答案 0 :(得分:1)
toggle
事件方法,您可以使用show / hide toggle
代替:
$('#search-item .text').click(function() {
$('ul.search_item').toggle();
});
答案 1 :(得分:1)
或试试这个:http://jsfiddle.net/sM7Tn/
你可以做$('ul.search_item').is(':visible'))
是可见的检查,休息将像火箭一样:)
希望它适合原因B - )
<强>代码强>
$(document).ready(function() {
$('#search-item .text').click(function() {
if (!$('ul.search_item').is(':visible'))
$('ul.search_item').show();
else
$('ul.search_item').hide();
});
$('.search_item li a').click(function() {
$('ul.search_item').hide();
$('#search-item .text').text($(this).text());
return false;
});
});