在輸入文本字段下方顯示下拉菜單。當前配置爲在文本輸入字段失焦時隱藏此下拉菜單。問題是,用戶需要能夠點擊下拉本身來顯示另一個區域,但是在此過程中,下拉本身會在其他區域顯示之前隱藏。註釋掉Fiddle第15-17行以查看其他區域的正確顯示。jQuery顯示/隱藏焦點問題
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dynamic show/hide</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function() {
$(".addressFill").hide();
$(".dropdown").hide();
function showElem() {
$(".addressFill").show();
}
$(".addresspicker").click(function() {
$("ul.dropdown").toggle();
});
// Problem starts here
$(".addresspicker").focusout(function() {
$(".dropdown").hide();
});
// ends
$("ul.dropdown").on("click", "li", showElem);
});
</script>
<style>
.dropdown { margin-left: 0.5em; padding: 0.5em; background: #fff; position: absolute; z-index: 999; border-top: 1px solid #B9B9B9; border-left: 1px solid #B9B9B9; border-right: 1px solid #7D7D7D; border-bottom: 1px solid #7D7D7D; }
ul { list-style-type: none; }
.dropdown li { padding: 0.5em; }
.dropdown li:hover { background-color: #eee; }
.dropdown li a:hover { text-decoration: none; }
p.addressFill { float: right; }
</style>
</head>
<body>
<form>
<fieldset>
<div class="section">
<label class="FieldLabel">Address:<span class="required">*</span></label>
<div class="autofill">
<input name="" maxlength="38" size="38" id="" type="text" title="addresspicker" class="addresspicker" />
<ul class="dropdown">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
</ul>
</div>
</div>
<p class="addressFill"> Show/hide section </p>
</fieldset>
</form>
</body>
</html>
對此答案+1。:D – 2013-04-08 07:48:16