2017-10-02 4 views
-1

私は、Windows 10の[スタート]メニューによく似たタイルを持つサイトを持っています。変数のIDと一致しないクラス内のすべての要素を非表示

一度クリックすると、フルサイズのドロップダウンが必要になります。同じタイルをもう一度クリックするとドロップダウンして閉じる必要があります。別のタイルをクリックするとドロップダウンが必要です。

これらのタイルにはあらゆる種類の名前が付いているので、クリックしたタイルのIDによって指示されるいくつかのjavascriptを作成したいと考えていました。

は、ここで私がこれまで持っているものです。

<div id="gaming" class="box one-one blue" onclick="showSection(this);"> 
<div id="gaming-section" class="section"> 

<div id="marketing" class="box one-one blue" onclick="showSection(this);"> 
<div id="marketing-section" class="section"> 
function showSection(obj) { 
    var tileName =obj.getAttribute('id'); 
    var sectionName =(tileName+'-section'); 
    document.getElementById(sectionName).style.display = "block"; 
} 

すべてのヘルプははるかにこのため

+1

なぜJavaの質問タグを?この問題はJavaプログラミングと何が関係していますか? –

+0

jQueryとHTMLタグもかなり冗長に見えますが、 –

+0

divタグを閉じることを検討してください – maioman

答えて

0

為替document.getElementById(sectionName).style.display = "block";いただければ幸いです。

const elemStyle = document.getElementById(sectionName); 

if (elem.style.display !== 'block') { 
    elem.style.display = 'block'; 
else { 
    const elements = document.getElementsByClassName('section'); 
    elements.forEach(elem => { 
     elem.style.display = 'none'; 
    } 
} 
+0

答えをありがとう、これは同じタイルを再度クリックするとDIVを隠す作業の半分を完了しています私は 'SectionName'変数と一致しないすべてのDIVを隠すことになりますか? –

+0

私はこの新しいコードを動作させることができないようです。その最後の行に '}'という行方不明が追加されました: 'elements.forEach(elem => { elem.style.display =' none '; }' –

関連する問題