Tôi đang làm việc trên menu mới, nơi tôi có nhiều div ẩn, nhưng tôi chỉ muốn hiển thị một div trên trang bất kỳ lúc nào.jQuery - Chỉ hiển thị một div bất kỳ lúc nào
Đây là mã của tôi; http://jsfiddle.net/sXqnD/
HTML đẹp và đơn giản;
<div id="linkwrapper">
<a id="link1" href="#">link1</a><br/>
<a id="link2" href="#">link2</a><br/>
<a id="link3" href="#">link3</a>
</div>
<div id="infocontent">
<div id="link1content">Information about 1.</div>
<div id="link2content">Information about 2.</div>
<div id="link3content">Information about 3.</div>
</div>
Đây là nỗ lực của tôi tại jQuery, có vẻ như không chơi độc đáo.
$(document).ready(function(){
$('#infocontent').children().hide();
$('#linkwrapper a').click(function(){
var chosen1 = this.id;
$('#infocontent').children('div').each(function(i) {
var i = i+1;
if($("#" + this.id).is(":visible") == true) {
$("#" + this.id).hide(function(){
$("#" + chosen1 + "content").show();
});
return false;
} else {
$("#" + this.id).show();
return false;
}
});
});
});
Mọi người có thể thấy tôi đã đi sai hoặc đề xuất giải pháp thanh lịch hơn không?
Tôi có thể đề nghị: '$ ('div') hide() lọc ('# idOfDivToShow') hiển thị (...); Điều này sẽ đảm bảo rằng nếu bạn thay đổi bộ chọn thứ 2, bạn chỉ cần thay đổi nó ở 1 vị trí thay vì 2. – Exelian
+1 để sử dụng bộ lọc - mà nhiều người không sử dụng. – JonH
Lợi ích của việc sử dụng bộ lọc qua bộ chọn kiểu CSS trực tiếp hơn như '#infocontent div' là gì? –