Это мой код:Почему этот приложенный прослушиватель событий не выполняется?
var myinp = document.querySelector(".myinp");
var store = document.querySelector(".store");
myinp.addEventListener("input", function() {update(store);}, false);
function update(elem) {
console.log('Executed');
elem.style.left= this.value + "%";
if(this.value>0) {
elem.textContent= this.value;
} else {
elem.textContent= null;
}
}
Консоль просто показывает один Executed
и даже тогда textContent
не меняется.
EDIT
Эта версия кода работает:
myinp.addEventListener("input", update, false);
function update() {
thumb.style.left= this.value + "%";
if(this.value>0) {
thumb.textContent= this.value;
} else {
thumb.textContent= null;
}
}
Когда я не проходя никаких параметров почему this
относятся к элементу, а не окно, как и в первом случае ?.
Пробовал ли вы отлаживать код? Проверьте область, в которой выполняется ваша функция, и посмотрите, на что указывает это «это». Вам нужно понять, как работает область Javascript. – CuriousMind
Что такое событие 'input'? Ввод - это элемент, а не событие –
@ MarcosPérezGude [это демо] (http://codepen.io/abhisack/pen/WvLXdd) работает с «входом». Есть ли объяснения? –