У меня есть элемент DOM (в некоторых случаях несколько), который я хочу переместить (изменив css), когда устройство движется.Как передать свойство «devicemotion» в JavaScript?
Теперь мне интересно, почему это не работает:
var aDOMElement = document.getElementById("someId");
aDOMElement.DeviceMotionEvent = window.DeviceMotionEvent;
aDOMElement.addEventListener('devicemotion', motionHandler, false);
Я считаю обходной путь, чтобы просто работать с window
объекта и обратного вызова я обрабатывать движения всех объектов, которые хранятся в массиве ,
Вроде как это:
function motionHandler(event) {
for (var obj in objectList) {
obj.move(event);
}
}
Однако, по какой-то причине, функция move
I, присвоенный объекту перед сохранением его в списке undefined
. Объяснения и/или решения для этого приветствуются.
EDIT:
Вот как я создать и добавить объект в массив:
var objectList = [];
var elem = document.createElement("div");
//add some properties
elem.id = "someId";
elem.move = specificMoveFunction;
//add it to the list
objectList[elem.id] = elem;
Можете ли вы показать 'objectList' и как вы добавляете объекты/добавляете' move'? – azium
Кроме того, тип 'objectList' звучит как массив, поэтому вы должны использовать другой синтаксис итерации, например' objectList.forEach (function (obj) {obj.move (event)}) ' – azium
Я добавил исправления. – Gandora