######【内容】
顧客管理システムを開発中で、顧客一覧画面にて、顧客の名前にマウスオーバーすると電話番号とメアドが表示されるようにしたいです。
1番目の顧客についてはマウスオーバー中は電話番号とメアドが表示されますが、
2番目の顧客においてはマウスオーバーをしているのに、1番目の顧客の部分で1番目の顧客の情報が表示されており、2番目の顧客においては何も表示されません。
######【仮説】
querySelectorAllで取得できているli要素が1番目のみ?
→console.logで確認してみたところ、取得自体は1番目も2番目も問題なくできているよう。
一度、配列に変換してからforEachだと上手くいくか?
→下記コードの通りですが、結果としては上手くいかず、同じように1番目だけが表示されています。
昨日より色々と調べておりますが、どうにも解決の糸口が掴めません。皆様のお力をお借りしたいです。
何卒宜しくお願い致します。
JavaScript
1function clientIndex() { 2 const clients = [...document.querySelectorAll(".lists")]; 3 const phoneEmail = document.getElementById("phone-email"); 4 5 clients.forEach(function(target) { 6 target.addEventListener('mouseover', function(){ 7 phoneEmail.setAttribute("style", "display:block;") 8 }) 9 target.addEventListener('mouseout', function(){ 10 phoneEmail.removeAttribute("style", "display:block;"); 11 }) 12 }) 13} 14 15window.addEventListener('load', clientIndex)
RubyonRails
1 <div class="clients-index"> 2 <ul class="clients"> 3 <div class="child-a"> 4 <h3 class="text-title">登録済み顧客一覧</h3> 5 </div> 6 <% @allclients.each do |c| %> 7 <% if c.user_id == current_user.id %> 8 9 <li class="lists"> 10 <%=link_to client_path(c.id), method: :get, class:"client-name" do %> 11 <%= c.last_name %><%= " " %><%= c.first_name %> 12 <% end %> 13 <div class="phone-email hidden", id= "phone-email"> 14 <%= c.phone_num %><br><%= c.email%> 15 </div> 16 </li> 17 18 <% end %> 19 <% end %> 20 </ul> 21 </div>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/21 08:50