像這樣的東西?注意:確保給你的隱藏鏈接一個唯一的ID。
顯示/隱藏使用jQuery show
和hide
方法效果很好,但因爲你想要的元素留在自己的位置,更適合使用visibility
樣式屬性:
$('#hide').click(function() {
// hide all in body except #e2, and #e2's parents.
$('body *').not($('#e2').parents().addBack()).css({visibility: 'hidden'});
return false; // cancel bubbling and default hyperlink effect.
});
$('#e2').click(function() { // click on #e2
return false; // cancel bubbling -- ignore click.
})
$(document).click(function (e) { // click on document
$('body *').css({visibility: 'visible'}); // show all in body.
});
div { border: 1px solid}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="e1">Element X1</div>
<div id="e2">Element 2X</div>
<div id="e3">Element X3</div>
<a href="/" id="hide">Hide</a>
請注意,這些div
元素水平延伸,因此文本「元素2X」右側的點擊仍然會在#e2上。
你嘗試過這麼遠嗎? –
首先,永遠不要使用id兩次...使用#e3button或其他鏈接 - 你不能隱藏身體本身,因爲#e3是身體的孩子。你可以做的就是隱藏除e3以外的所有div - 你只有一個鏈接,並隱藏這個鏈接總是相同的id,除了相同/以前定義的一個? – Proximate
這可能對你有幫助嗎? http://stackoverflow.com/questions/13239331/hide-all-divs-except-one – Proximate