Мне нужно перейти к методу actionSorter() и HTMLCollection, мне интересно, как это сделать, создавая временный div, отделенный от DOM.
Есть идеи?
var temp = document.createElement('div');
temp.className = 'temp';
temp.dataset.href = 'zoomout';
var coll = document.querySelectorAll('.temp');
this.actionSorter(coll);
actionSorter: function($el) {
var href = $el[0].dataset.href;
if (href === 'viewup') {
Viewer.itemAnimateUp();
}
if (href === 'viewright') {
Viewer.itemAnimateRight();
}
if (href === 'viewdown') {
Viewer.itemAnimateDown()
}
if (href === 'viewleft') {
Viewer.itemAnimateLeft();
}
return false;
},
Вам не нужно делать querySelectorAll
потому что у вас уже есть элемент.
Достаточно пройти temp
элемент
this.actionSorter(temp);
однако, если ваш элемент более сложный и вы хотите найти что-то внутри временного элемента, не присоединенного к DOM, вы можете вызвать метод querySelectorAll
элемента, например
temp.querySelectorAll(".selector")
Обратите внимание, что querySelectorAll
возвращает массив элементов.
UPDATE: согласно вашему коду... просто вы должны передать массив как аргумент
var temp = document.createElement('div');
temp.className = 'temp';
temp.dataset.href = 'zoomout';
this.actionSorter( [temp] ); // <--- note temp into array
попробуй что-нибудь вроде этого
var temp = document.createElement('div');
temp.className = 'temp';
temp.dataset.href = 'zoomout';
this.actionSorter(temp);
temp
уже элемент, вы не можете передать это?