Так что я делаю перетаскивание. Когда пользователь захватывает элемент, мне нужно добавить прослушиватель событий для dragenter к каждому элементу. В этой функции слушателя мне нужно это, чтобы получить и сохранить clientX, когда мышь перемещается по этому элементу. Проблема, с которой я столкнулась, - это получить позицию мыши первого элемента и сохранить один и тот же для каждого другого элемента. Как я могу это исправить?Добавить функцию для каждого элемента, который получает clientX
Код:
if(editor_children[i].nodeType != 3)
{
editor_children[i].addEventListener("dragenter", function(event){
if(event.target.id !== e.target.id) event.target.className= event.target.className + " highlight";
position= event.clientX;
last_over= event.target.id;
console.log("Mouse: " + e.clientX + " Position: " + position + " Last Element: " + last_over);
})
editor_children[i].addEventListener("dragleave", function(event){
event.target.className= event.target.className.replace(' highlight', '');
});
}
Пожалуйста, не библиотеки JS.
На первый взгляд, может быть, потому, что вы используете одну и ту же переменную (переменную положения) для хранения каждой позиции каждого элемента? Вы также сильно усложняете себя. Просто выполняйте функцию (e) {e = e || event; и использовать e для всего. – tomysshadow
Переменная position - глобальная (да, я знаю, плохое кодирование). Необходимо исправление позже), необходимое для функции drop. Я нашел проблемы, хотя, спасибо. – Zaper127