2016-06-20 4 views
0

私は以下のコードを使用してテキストの段落を展開したり折りたたんだりするページを持っています。今、アンカータグを設定してリンクなどが必要となるようにする必要があります。 www.website.com/page#section1は自動的にテキストを展開します。javascriptを使用してURLのアンカータグで折りたたみテキストを展開するにはどうすればよいですか?

私は現在の関数にlocation.hashを追加することができるようですが、その方法についてはわかりません。

ありがとうございます!

<a name="section1"><h3><span id="toggleControlS2" onClick="toggleS2();">Section 1</span></h3></a> 

<p id="hiddenTextBlockS2">Paragraph of text</p> 

Javascriptを:

<script type="text/javascript"> 
var toggleControlS2=document.getElementById("toggleControlS2"); 
var hiddenTextBlockS2=document.getElementById("hiddenTextBlockS2"); 

function toggleS2() 
{ 
    if(hiddenTextBlockS2.style.display=="block") 
    { 
     hiddenTextBlockS2.style.display="none"; 
     toggleControlS2.innerHTML="Section 1 +"; 
    } 
    else if(hiddenTextBlockS2.style.display=="none") 
    { 
     hiddenTextBlockS2.style.display="block"; 
     toggleControlS2.innerHTML="Section 1 -"; 
    } 
} 

hiddenTextBlockS2.style.display="none"; 
toggleControlS2.style.cursor="pointer"; 
</script> 
+0

クリーナーの方法、あなたは1になります持っているものの上に構築するための最も簡単な方法)がありますがfalseを返す'追加2)あなたのアンカーは 'Toggle'のようになります。 IMOでは、インラインクリックイベントを削除し、JavaScriptでイベントをバインドすることになる「邪魔されないJavaScript」を検討する価値があります。 –

答えて

0

ここで何が起こっている

の下に追加ページがロードされると、我々はそれが「#のセクション1」と一致するかどうかを確認するための場所のハッシュをチェックすることです。そうであれば、#toggleControlS2スパンをクリックするのと同じロジックを実行します。あなた `toggleS2()`関数の最後に `、および、

例えば

<script type="text/javascript"> 
var toggleControlS2=document.getElementById("toggleControlS2"); 
var hiddenTextBlockS2=document.getElementById("hiddenTextBlockS2"); 

function toggleS2() 
{ 
    if(hiddenTextBlockS2.style.display=="block") 
    { 
     hiddenTextBlockS2.style.display="none"; 
     toggleControlS2.innerHTML="Accepted (peer-reviewed) Version +"; 
    } 
    else if(hiddenTextBlockS2.style.display=="none") 
    { 
     hiddenTextBlockS2.style.display="block"; 
     toggleControlS2.innerHTML="Accepted (peer-reviewed) Version -"; 
    } 
} 

hiddenTextBlockS2.style.display="none"; 
toggleControlS2.style.cursor="pointer"; 

if(location.hash === "#section1"){ 
    toggleS2(); 
} 
</script>