В моем приложении Meteor событие «mouseenter» запускается дважды в первый раз, когда я накладываю мышь на элемент. После первого раза он работает правильно.Событие Javascript «mouseenter» запускается дважды в первый раз - Meteor
Кроме того, обработчик события запускается один раз, когда я запускаю приложение, не перемещая мышь.
Вот код:
Template.filters.events({
'mouseenter .filters-box': (event, element)=>{
var target = Template.instance().$(event.target).children('.filters-popup')[0]
console.log('enter');
console.log(target);
if(!target){
return;
}
var prevWidth = target.style.width;
target.style.width = 'auto';
var endWidth = getComputedStyle(target).width;
target.style.width = prevWidth;
target.offsetHeight;
target.style.width = endWidth;
},
'mouseleave .filters-box': (event, element)=>{
var target = Template.instance().$(event.target).children('.filters-popup')[0];
console.log('leave');
console.log(target);
if(!target){
return;
}
target.style.width = getComputedStyle(target).width;
target.offsetHeight;
target.style.width = 0;
}
});
Это выход в консоли браузера:
Navigated to http://localhost:3000/
filters.js:26 enter
filters.js:27 undefined
Затем, когда я двигаю мышь в и из элемента:
filters.js:26 enter
filters.js:27 <div class="filters-popup" style="width: 0px;">…</div>
filters.js:26 enter
filters.js:27 <div class="filters-popup" style="width: 0px;">…</div>
filters.js:44 leave
filters.js:45 <div class="filters-popup" style="width: 0px;">…</div>
filters.js:44 leave
filters.js:45 <div class="filters-popup" style="width: 0px;">…</div>
Следующие несколько раз я запускаю только одно событие для каждого типа:
filters.js:26 enter
filters.js:27 <div class="filters-popup" style="width: 0px;">…</div>
filters.js:44 leave
filters.js:45 <div class="filters-popup" style="width: 0px;">…</div>
Я пробовал с event.preventDefault(); и event.stopPropagation(); методов, но он все еще не работает правильно.
У меня также есть эта проблема с Метеор. even.preventDefault() ничего не делает для меня. Вы когда-нибудь находили решение этого? –