嗨,朋友我有div問題。 我有一個鏈接顯示/隱藏在我的網頁上點擊,我必須顯示或隱藏特定的div。 我做得很成功。 但我的問題是,只要我點擊該鏈接div被隱藏或顯示,但頁面直接在頂部&我必須再次滾動下來。 我不想滾動這個,也不想跳到頂部。HTML Divs顯示/隱藏問題
請幫我解決這個問題。 預先感謝您。
更新: 朋友我從我的一個朋友那裏得到了答案。 其實我正在使用 由於href =「#」每當我點擊該鏈接時,網址都會被更改並且頁面會顯示在頂部。
嗨,朋友我有div問題。 我有一個鏈接顯示/隱藏在我的網頁上點擊,我必須顯示或隱藏特定的div。 我做得很成功。 但我的問題是,只要我點擊該鏈接div被隱藏或顯示,但頁面直接在頂部&我必須再次滾動下來。 我不想滾動這個,也不想跳到頂部。HTML Divs顯示/隱藏問題
請幫我解決這個問題。 預先感謝您。
更新: 朋友我從我的一個朋友那裏得到了答案。 其實我正在使用 由於href =「#」每當我點擊該鏈接時,網址都會被更改並且頁面會顯示在頂部。
您是否正在嘗試這麼做?
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<div id="wrapper">
<div id="container">
</div><!-- end of #container div -->
<a id="showdiv">Show the div</a>|<a id="hideDiv">Hide the div</a>|<a id="toggle">Toggle</a>
</div><!-- end of #wrapper div -->
</body>
</html>
這裏的CSS:
#container {
width: 300px;
height: 300px;
background: red;
margin-bottom: 20px;
}
#wrapper {
margin: 40px auto;
width: 400px;
}
而這裏的jQuery的
$(function() {// When document is ready, run this...
//Get hold of the link with the id #showdiv and do something when you click it
$("#showdiv").click(function() {
// Grab the div with the id #container and show it
// Alert me when you're done
$("#container").show(2000, function() {
alert("I'm done showing");
});
});
//Get hold of the link with the id #hideDiv and do something when you click it
$("#hideDiv").click(function() {
// Grab the div with the id #container and hide it
// Alert me when you're done
$("#container").hide(2000, function() {
alert("I'm done hiding");
});
});
// Toggle - This is like a On/Off Switch
//Get hold of the link with the id #toggle and do something when you click it
$("#toggle").click(function() {
// Grab the div with the id #container and show if hidden/hide if shown
$("#container").toggle(2000);
});
});
當然你必須使用上面的腳本之前鏈接到jQuery的副本。 以下是演示的鏈接:http://jsfiddle.net/tonystark/HhNBA/
這是因爲你的鏈接指向類似#foo
或只是#
,而它不應該有一個href
(或有一個空的)...
你probaby有像href=#
href屬性一個#請刪除哈希和替代那種編寫href='javascript:void(null);'
假設你有一個鏈接
內聯(不推薦,但可能是你有什麼)
<script>
function showhide(id) {
var elem = document.getElementById(id);
elem.style.display=elem.style.display=="none"?"block":"none";
return false; // MANDATORY
}
</script>
<a href="#" onclick="return showhide('someId')">Toggle</a>
<div id="someId">Show or hide me when you click a link</div>
取出href屬性並應用文字裝修風格
<a style="text-decoration: underline;" title="click me"></a>
那會顯得更有意義不是將你不想一個href,後來阻止其正常運行。一個優雅退化的替代方法是使用href指向顯示/隱藏的div,默認顯示正常,讓javascript將其隱藏在可用的javascript的位置。
「改變你的錨(鏈接)到一個跨度,以便它沒有這種行爲,然後,使用css風格,所以它看起來你希望它看起來。」
我經常使用該技術。即使用帶有onclick的span或div,使用文本修飾:下劃線,光標:指針和可能的display:inline,如果您決定使用div。一個需要注意的是,在IE6中,css hover不能用於除錨點之外的任何其他功能。這很容易與JavaScript解決。
你完全可以刪除href屬性。錨具有上述優點(跨瀏覽器:懸停樣式)並允許用於工具提示等的標題屬性。
這甚至不顯示... – mplungjan 2011-12-30 13:14:27
您必須取消鏈接的onclick
處理程序的默認行爲。這樣做,不要在您單擊處理程序使用return false
,而是使用event.preventDefault()
:
HTML:
<a href="#targetdiv" class="foo">hide me</a>
<div id="#targetdiv">blah</div>
的Javascript:
document.querySelector('a.foo').onclick = function(event) {
try {
document.querySelector(this.getAttribute('href')).style.display = 'none';
} catch (e) {
console.error("couldn't find element to hide");
}
event.preventDefault();
}
JQuery的:
$('a.foo').click(function(event) {
try {
$($(this).attr('href')).hide();
} catch (e) {
console.error("couldn't find element to hide");
}
event.preventDefault();
})
更多信息:
相當新的選擇器有趣的介紹。 [兼容性](https://developer.mozilla.org/En/DOM/Document.querySelector#section_5) – mplungjan 2011-12-30 09:12:08
您可以發佈您的示例代碼或http://jsfiddle.net – Pavan 2011-12-30 06:18:14
創建的jsfiddle請分享您的代碼, – 2011-12-30 06:31:24