Два решения для вас:
Все еще используете JavaScript
Используйте класс для всех элементов, которые вы хотите обработать обработчиками, а не ID. Идентификаторы по своей природе должны быть уникальными. Внутри обработчика используйте this
, чтобы вы знали, на какой элемент нацелено событие, и по нему найдите подсказку:
$(document).ready(function() {
$(document).on("mouseover", ".datapoint", function() {
$(this).nextAll(".tooltip").show();
});
$(document).on("mouseleave", ".datapoint", function() {
$(this).nextAll(".tooltip").hide();
});
});
Live Пример:
$(document).ready(function() {
$(document).on("mouseover", ".datapoint", function() {
$(this).nextAll(".tooltip").show();
});
$(document).on("mouseleave", ".datapoint", function() {
$(this).nextAll(".tooltip").hide();
});
});
#mainContent .thirdRow .column {
display: inline-block;
position: relative;
}
#mainContent .LatestResults {
color: #919191;
font-weight: bold;
padding-right: 5px;
padding-top: 8px;
padding-left: 10px;
font-size: 15px;
text-align: center;
vertical-align: middle;
}
#mainContent .resultData .tooltip {
height: 100px;
width: 100px;
top: 20px;
left: 50%;
transform: translateX(-45%);
position: absolute;
text-align: center;
vertical-align: middle;
float: left;
background-color: #ADADAD;
color: #FFF;
border-radius: 10px;
padding-top: 10px;
z-index: 5;
}
#mainContent .resultData {
padding-right: 6px;
padding-left: 3px;
padding-top: 6px;
vertical-align: middle;
float: left;
z-index: -1;
}
#mainContent .datapointred {
display: inline-block;
margin-left: 12px;
height: 15px;
width: 15px;
border-radius: 50%;
background-color: #FF5B5B;
vertical-align: middle;
-webkit-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
-moz-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
}
#mainContent .datapointgreen {
display: inline-block;
margin-left: 12px;
height: 15px;
width: 15px;
border-radius: 50%;
background-color: #00DC8E;
vertical-align: middle;
-webkit-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
-moz-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
}
#mainContent .datapointblue {
display: inline-block;
margin-left: 12px;
height: 15px;
width: 15px;
border-radius: 50%;
background-color: #4B49AE;
vertical-align: middle;
-webkit-box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.91);
-moz-box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.91);
box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.91);
}
<body>
<div id="mainContent">
<div class="thirdRow">
<div class="resultData column">
<div class="resultWrapper10 column">
<div class="datapointgreen datapoint" id="id10"></div>
<table class="tooltip" style="" id="tooltip10">
<tbody>
<tr>
<td>Hometeam</td>
<td>2</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>0</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper18 column">
<div class="datapointgreen datapoint" id="id18"></div>
<table class="tooltip" style="display:none" id="tooltip18">
<tbody>
<tr>
<td>Hometeam</td>
<td>1</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>6</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper21 column">
<div class="datapointblue datapoint" id="id21"></div>
<table class="tooltip" style="display:none" id="tooltip21">
<tbody>
<tr>
<td>Hometeam</td>
<td>1</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>1</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper37 column">
<div class="datapointgreen datapoint" id="id37"></div>
<table class="tooltip" style="display:none" id="tooltip37">
<tbody>
<tr>
<td>Hometeam</td>
<td>1</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>2</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper45 column">
<div class="datapointgreen datapoint" id="id45"></div>
<table class="tooltip" style="display:none" id="tooltip45">
<tbody>
<tr>
<td>Hometeam</td>
<td>0</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>3</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper1110 column">
<div class="datapointred datapoint" id="id1110"></div>
<table class="tooltip" style="display:none" id="tooltip1110">
<tbody>
<tr>
<td>Hometeam</td>
<td>2</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>1</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper53 column">
<div class="datapointgreen datapoint" id="id53"></div>
<table class="tooltip" style="display:none" id="tooltip53">
<tbody>
<tr>
<td>Hometeam</td>
<td>5</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>0</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper65 column">
<div class="datapointgreen datapoint" id="id65"></div>
<table class="tooltip" style="display:none" id="tooltip65">
<tbody>
<tr>
<td>Hometeam</td>
<td>0</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>2</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper1115 column">
<div class="datapointgreen datapoint" id="id1115"></div>
<table class="tooltip" style="display:none" id="tooltip1115">
<tbody>
<tr>
<td>Hometeam</td>
<td>2</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>1</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Использование CSS вместо
Вы можете использовать тот факт, что всплывающая подсказка является родственным элементом div
, который вызывает еесделать это с помощью CSS:
.datapoint + .tooltip {
display: none;
}
.datapoint:hover + .tooltip {
display: block;
}
Live Пример:
#mainContent .thirdRow .column {
display: inline-block;
position: relative;
}
#mainContent .LatestResults {
color: #919191;
font-weight: bold;
padding-right: 5px;
padding-top: 8px;
padding-left: 10px;
font-size: 15px;
text-align: center;
vertical-align: middle;
}
#mainContent .resultData .tooltip {
height: 100px;
width: 100px;
top: 20px;
left: 50%;
transform: translateX(-45%);
position: absolute;
text-align: center;
vertical-align: middle;
float: left;
background-color: #ADADAD;
color: #FFF;
border-radius: 10px;
padding-top: 10px;
z-index: 5;
}
#mainContent .resultData {
padding-right: 6px;
padding-left: 3px;
padding-top: 6px;
vertical-align: middle;
float: left;
z-index: -1;
}
#mainContent .datapointred {
display: inline-block;
margin-left: 12px;
height: 15px;
width: 15px;
border-radius: 50%;
background-color: #FF5B5B;
vertical-align: middle;
-webkit-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
-moz-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
}
#mainContent .datapointgreen {
display: inline-block;
margin-left: 12px;
height: 15px;
width: 15px;
border-radius: 50%;
background-color: #00DC8E;
vertical-align: middle;
-webkit-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
-moz-box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
box-shadow: 0px 1.5px 1px 0px rgba(0, 0, 0, 0.91);
}
#mainContent .datapointblue {
display: inline-block;
margin-left: 12px;
height: 15px;
width: 15px;
border-radius: 50%;
background-color: #4B49AE;
vertical-align: middle;
-webkit-box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.91);
-moz-box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.91);
box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.91);
}
.datapoint + .tooltip {
display: none;
}
.datapoint:hover + .tooltip {
display: block;
}
<body>
<div id="mainContent">
<div class="thirdRow">
<div class="resultData column">
<div class="resultWrapper10 column">
<div class="datapointgreen datapoint" id="id10"></div>
<table class="tooltip" style="" id="tooltip10">
<tbody>
<tr>
<td>Hometeam</td>
<td>2</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>0</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper18 column">
<div class="datapointgreen datapoint" id="id18"></div>
<table class="tooltip" id="tooltip18">
<tbody>
<tr>
<td>Hometeam</td>
<td>1</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>6</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper21 column">
<div class="datapointblue datapoint" id="id21"></div>
<table class="tooltip" id="tooltip21">
<tbody>
<tr>
<td>Hometeam</td>
<td>1</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>1</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper37 column">
<div class="datapointgreen datapoint" id="id37"></div>
<table class="tooltip" id="tooltip37">
<tbody>
<tr>
<td>Hometeam</td>
<td>1</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>2</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper45 column">
<div class="datapointgreen datapoint" id="id45"></div>
<table class="tooltip" id="tooltip45">
<tbody>
<tr>
<td>Hometeam</td>
<td>0</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>3</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper1110 column">
<div class="datapointred datapoint" id="id1110"></div>
<table class="tooltip" id="tooltip1110">
<tbody>
<tr>
<td>Hometeam</td>
<td>2</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>1</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper53 column">
<div class="datapointgreen datapoint" id="id53"></div>
<table class="tooltip" id="tooltip53">
<tbody>
<tr>
<td>Hometeam</td>
<td>5</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>0</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper65 column">
<div class="datapointgreen datapoint" id="id65"></div>
<table class="tooltip" id="tooltip65">
<tbody>
<tr>
<td>Hometeam</td>
<td>0</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>2</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
<div class="resultWrapper1115 column">
<div class="datapointgreen datapoint" id="id1115"></div>
<table class="tooltip" id="tooltip1115">
<tbody>
<tr>
<td>Hometeam</td>
<td>2</td>
<td>3 (1)</td>
</tr>
<tr>
<td>hometeam</td>
<td>1</td>
<td>2 (1)</td>
</tr>
<tr>
<td>Venue</td>
<td>Emirates</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Обязательно удалите строчные style="display:none"
на подсказках, как указано выше.