2013-08-21 34 views
0

我想隱藏的元素(ID =「PRES」)通過跳轉到該頁面區域展現出來,當用戶點擊「主席[+]」。問題是它不會跳到那個區域,但它顯示了隱藏的元素。這是我的HTML代碼:錨標籤不與節目工作/隱藏

<p><a id="Pres" href="#pres"> <b>President :</b> Name <span>[+]</span> </a></p> 

<div id="pres"> 
<a href="images/pres.jpg" rel="lightbox[group101]" class="membersPhotosVer"><img src="images/pres.jpg" /></a> <br/> 
<p> bla bla bla </p>    
</div> 

jQuery代碼:

$("#pres").hide(); 
$("#vp").hide(); 
$("#sec").hide(); 
$("#fin").hide(); 
$("#med").hide(); 
$("#ev").hide(); 
var pvsfme = $("#pres,#vp,#sec,#fin,#med,#ev"); 
var PVSFME = $("#Pres,#Vp,#Sec,#Fin,#Med,#Ev"); 

PVSFME.click(function(e){ 
    e.preventDefault(); 
    var cli = $('#'+this.id.toLowerCase()); 
    cli.show(); 
    pvsfme.not(cli).hide(); 
    $(this).addClass("media-selected"); 
    PVSFME.not(this).removeClass("media-selected"); 
    $(this).children("span").text("[-]").show(); 
    PVSFME.not(this).children("span").text("[+]").show(); 
}); 

我想知道如果錨標記不工作,因爲顯示/隱藏的......或者我失去了一些重要的東西。

+0

您正阻止默認操作 – Daniel

+0

你可能想了解'e.preventDefault()':http://api.jquery.com/event.preventDefault/。我想知道爲什麼你使用它,如果你不知道它是什麼。 –

+0

我確實需要防止默認的,所以我的固定菜單沒有得到搞砸了,當我點擊一個錨鏈接。有沒有/使用錨標籤來實現這種效果的另一種方法? – user977151

回答

2

您必須刪除e.preventDefault();,否則爲錨元素(導航),默認的行爲將被取消。

+0

我認爲這是有意的。 e.preventDefault將阻止它打開images/pres.jpg,不會中斷js。 **重新閱讀問題後編輯**,也許你是對的。 – peterchon

+0

@peterchon:我相信OP在談論點擊第一個鏈接,而不是已經是目標元素中的鏈接。事實上,事件處理程序不會綁定到您正在討論的鏈接上。 –

+0

是啊,我的意思是點擊,將顯示隱藏元素的鏈接...我希望它跳轉到隱藏元素點擊後,因爲有時用戶無法看到它,如果前一個元素太長 – user977151

0

我相信你只是希望插入:

<a name="pres"></a> 

在你#pres div的頂部。

+0

沒有必要的,在' id'屬性具有相同的功能。即使那個錨點在那裏,它也能解決問題。 –

+0

\ *會**不解決問題。 –