【发布时间】:2011-04-22 21:11:51
【问题描述】:
大家好, 我已经用 css 和 jquery 在 html 中构建了自己的选择框。
<div class="select">
<ul>
<li class="destination option small darr loc">One</li>
<li class="destination option small loc">Two</li>
<li class="destination option small loc">Three</li>
<li class="destination option small loc">Four</li>
</ul>
</div>
jQuery:
//select box
$('.select ul li.option').click(function(e) {
e.stopPropagation();
$(this).siblings().slideToggle(100).removeClass('darr');
$(this).addClass('darr');
});
$(document).click(function(e) {
$('.select ul li.option').each(function() {
if ( !$(this).is(":hidden") ) {
$(this).not('.darr').slideToggle(100);
}
});
});
因此,当单击第一个项目时,选择框会像下拉菜单一样展开。单击其中一个选项时,选择框会再次折叠。
我还希望选择框在单击页面上的其他位置时折叠,因此我正在监听 $(document) 上的单击事件。效果很好。
我唯一的小错误是,当页面上有多个选择框时,我展开其中的一个并单击另一个选择框,前一个选择框不会折叠。
在此处查看我的示例:http://jsfiddle.net/UWSUk/ 当您展开第二个选择框,然后直接单击上面的选择框时,它不会折叠。两者都保持打开状态。
知道如何解决这个问题吗?
【问题讨论】: