Jquery在悬停时显示文本 - 循环项目

时间:2017-05-31 16:33:03

标签: javascript jquery html node.js hover

我需要在图标悬停时显示图标。问题是图标是通过循环显示的。意思是我有多个具有相同名称的图标。我确定我需要使用"这个"不知何故,只显示悬停在图标旁边的文字。但到目前为止,我没有这样做。

到目前为止我的基本代码。如何更改代码以显示文本,具体取决于正在悬停的图标?

$(".material-icons").on({
        mouseenter: function () {
         console.log('Show Name for this Icon')
        },
        mouseleave: function () {
         console.log('Hide Name for this Icon')
        }
    });

任何帮助表示赞赏!

编辑:这是用于显示图标的循环。

   <li id='topSection' class="list-group-item active">Amenities </li>
             <li id="amnetiesBox" class="list-group-item">
              <% for(var i=0; i<rentals.amenities.length; i++){ %>
              <i class="material-icons"><%=rentals.amenities[i]%></i>
               <% } %>
            </li>
              </li> 

选择图标的示例:

<input type="checkbox" name="amenities" value="personal_video"><span>TV</span>
<input type="checkbox" name="amenities" value="call"><span>Phone</span>

2 个答案:

答案 0 :(得分:0)

您可以使用$(this)并显示与该目标元素相关的文本

$(".material-icons").on({
        mouseenter: function () {
            $(this).next("span").show()
        },
        mouseleave: function () {
           $(this).next("span").hide()
        }
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="material-icons" ><span>Hover </span></div> <span style="display:none">first</span>
<div class="material-icons" ><span>Hover</span></div> <span style="display:none">second</span>
<div class="material-icons" ><span>Hover</span></div> <span style="display:none">third</span>

答案 1 :(得分:0)

我提出了一个有点简单的解决方案。其他建议的问题是我不能因为循环而为每个图标添加跨度(据我所知)。

我接受了这个:

  $(".material-icons").on({
        mouseenter: function () {
    var text = $(this).text();

    if (text === 'wifi'){
        text = 'Local Wifi'
    }

    if (text === 'local_laundry_service'){
        text = 'Laundry on site'
    }

      $(".showName").show()
      $(".showName").html(text)
        },
        mouseleave: function () {
         $(".showName").hide()
        }
    });

所以它正在做的是首先找到图标名称,如果图标名称是&#34; local_laundry_service&#34;等我正在更新文本,简单地说就是在现场洗衣服。显然,您必须为可能使用的每个图标执行此操作。代码不是很干,但我不知道怎么回事。