@PHPjedi

Как правильно добавить событие к input?

Недавно писал бота для онлайн игры, там все элементарно, всего лишь проверка - калькулятор - ввести в поле input новое значение и сделать клик.

Тогда я пробовал только
$(rl).val(myNewValue);
не работало, а точнее при клике добавлялось предыдущее значение которые было введено в этой игре.
Вывод: В input, существует какая то проверка. Обошел я ее таком образом:

var input = $('.input-currency').children(0);
var eevent = new Event("input", {bubbles: true, cancelable: true});
input.dispatchEvent(eevent);


Теперь спустя 3-4 месяца, когда я вернулся дописать своего бота, это все перестало работать. Элементы в этой игре остались те же. Иногда консоль выдает ошибку: .dispatchEvent is not a function.
Решается это проблема только если заменить $ на document.querySelector.

Мне нужно правильно добавить\создать событие к input, чтобы решить проблему.

Мне кажется проблема в событиях... Как вы думаете ? Помогите пожалуйста разобраться с задачкой.

Заранее большое спасибо!

А как можно добавлять событие используя возможности библиотеки jQuery ?
  • Вопрос задан
  • 824 просмотра
Решения вопроса 1
Посмотрите внимательнее на свой код. jQuery-элемент ≠ DOM-элемент.
// Вы получаете ноды через jquery и зачем-то получаете его 
// дочерние элементы, которых в инпуте нет
// var input = $('.input-currency').children(0);
var input = $('.input-currency')
var eevent = new Event('input', { bubbles: true, cancelable: true })
// И пытаетесь применить стандартный DOM-метод. 
// input.dispatchEvent(eevent);
// А вам нужно сперва получить dom-ноду из jquery-листа
input.get(0).dispatchEvent(eevent);


Но коли вы используете jQuery, делайте так:
$('.input-currency').trigger('input')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы