Как локальную переменную преобразовать в глобальную в js?
Столкнулся при верстке с тем что из-за незнания базиса js простейшие функции не могу записать. Суть в том что я написал две функции, в первой считываются координаты блока в четыре переменные, две из них константы, две другие просто переменные которая регулирует высоту или ширину блока. Во второй функции переменные которые я завел как константы используются чтобы вернуть блоки в исходное положение. Вопрос в следующем: как дать доступ второй функции к константам первой? Я попробовал завести переменные перед функциями, думая, что раз у них одинаковые имена значит они прочитаются как одни и те же, но фиг там.
$(function() {
$('.blocks').mouseenter(function() {
$('.blocks').offset(function(index, coords) {
$(this).text('Элемент №' + index);
const tap = coords.top;
const laft = coords.left;
console.log(tap, laft, index);
var top = coords.top;
var left = coords.left;
if (index === 0) {
top += 50;
} else if (index === 1) {
left += 50;
} else {
top += 50;
left += 50;
}
return { top: top, left: left };
});
});
$('.blocks').mouseleave(function() {
$('.blocks').offset(function(index, coords) {
$(this).text('Элемент №' + index);
var top = 0;
var left = 0;
alert(tap, left, index);
if (index === 0) {
top = tap;
} else if (index === 1) {
left = laft;
} else {
top = tap;
left = laft;
}
return { top: top, left: left };
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="blocks" style="width: 100px; height: 100px; background-color: pink;"></div>
<div class="blocks" style="width: 100px; height: 100px; background-color: orange;"></div>
<div class="blocks" style="width: 100px; height: 100px; background-color: lime;"></div>
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
$(function() {
var tap;
var laft;
$('.blocks').mouseenter(function() {
$('.blocks').offset(function(index, coords) {
$(this).text('Элемент №' + index);
tap = coords.top;
laft = coords.left;