2016-08-23 5 views
0

ボタン(B)をクリックするとメニュー(C)が表示され、クリックすると同じメニュー(C)が表示されます。
私がここで行う必要がある4つのことがあります。

1)BをクリックするとCが表示されます。
2)Aをクリックすると、Cが表示されます。
3)Bをクリックすると、Aが表示されなくなります。
4)Aは初回訪問後に非表示になります。 (ウェルカムメッセージのように)


ただし、初めての訪問(ここではlocalStorageを使用しています)のスクリプトを追加すると動作しないようです。誰がどこが間違っていたか知ることができますか また、私はjavascriptを初めて使っているので、コードをオンラインで探していて、動作しているかどうかを確認するために追加しています。コードを改善する方法があるかどうかはわかりません(今はすべてが分離されています)。ありがとう。ここで
初回訪問後にdivを非表示にする

は、ここに私のコード

<div class="user-menu-group"> 
    <a href="javascript:void()" onclick="hide('1sttime')" class="open-user-menu">B 
     <div class="notification" id="1sttime"> 
     <p>A</p> 
     </div> 
    </a> 
    <div class="user-menu-bs">C</div> 
</div> 

である私のスクリプト

  <!--first time message--> 
      <script> 
      $(document).ready(function() { 
       if (localStorage.getItem('wasVisited') !== undefined) { 
        $("#1sttime").hide(); 
       } else { 
        localStorage.setItem('wasVisited', 1); 
        $("#1sttime").delay(5000).fadeOut(500); 
       } 
      }); 
      </script> 

      <!--hide A after clicking B--> 
      <script> 
      function show(target) { 
       document.getElementById(target).style.display = 'block'; 
      } 

      function hide(target) { 
       document.getElementById(target).style.display = 'none'; 
      } 
      </script> 

      <!--hide A after clicking it--> 
      <script> 
      (function() { 
       var elements = document.getElementsByClassName('notification'); 
       for (var i = 0; i < elements.length; i++) { 
        elements[i].addEventListener('click', function() { 
         this.style.display = 'none'; 
        }); 
       } 
      })(); 
      </script> 
+0

? – nnnnnn

+0

@nnnnnn申し訳ありませんが、JSのみで行う方法がわかりません。特に初めての訪問部分。 – user3769516

答えて

0

はこれを試してみてくださいです:あなたは、AとBのための単一のクリックハンドラを持っているAを隠し、クリックした後、Cを表示することができます。 jQueryと平野JSのはなぜミックス

$(function(){ 
 
    $('.open-user-menu, .notification').click(function(){ 
 
    $('.notification').hide(); 
 
    $('.user-menu-bs').show(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="user-menu-group"> 
 
    <a href="javascript:void()" onclick="hide('1sttime')" class="open-user-menu">B 
 
     <div class="notification" id="1sttime"> 
 
     <p>A</p> 
 
     </div> 
 
    </a> 
 
    <div class="user-menu-bs" style="display:none">C</div> 
 
</div>

+0

ありがとう!しかし、初めての訪問の部分はまだ動作しません。しかし、私はあなたの助けに2つを組み合わせました。ありがとう。 – user3769516

+0

あなたのお手伝いを喜んでください:)あなたの要件に応じて、ユーザーがAまたはBをクリックすると、Aは隠され、再びAをクリックする機会はありません。したがって、私はAが隠されてCが見えるようになるシングルクリックハンドラーを保ちました。要件が間違っていることを教えてください。 –

関連する問題