【发布时间】:2017-11-01 13:54:18
【问题描述】:
我需要在图标悬停时显示文本。问题是图标通过循环显示。这意味着我有多个同名图标。我确定我需要以某种方式使用“this”来仅在悬停的图标旁边显示文本。然而到目前为止,我还没有这样做。
到目前为止我的基本代码。如何根据悬停在哪个图标上更改代码以显示文本?
$(".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>
【问题讨论】:
-
请在您的图标附近添加html,包括您要显示的文本。
-
尝试使用
$('.material-icons').on('hover', function() { var text = $(this).data('text'); }你的图标html一定是这样写的<img data-text="The text you want to display" src=""> -
文本需要以某种方式附加到图标上,正如@Abolarinstephen 所指出的(在数据属性中)或图标附近某处的隐藏元素(正如 XYZ 在他的回答中所假设的那样)。
-
您可以使用 data 属性将文本添加到
i元素,例如<i class="material-icons" data-text="icon 1"><%=rentals.amenities[i]%></i>。你的 js 就像 $('.material-icons').on('hover', function() { var text = $(this).data('text'); alert('text') } -
@James - 我如何将它添加到我的循环中?嗯。
标签: javascript jquery html node.js hover