Я прикрепил событие к текстовому полю с помощью addEventListener
. Работает нормально. Моя проблема возникла, когда я хотел программно вызвать событие из другой функции.
Как мне это сделать?
javascript
events
triggers
addeventlistener
dom-events
KoolKabin
источник
источник
Ответы:
Вы можете использовать fireEvent в IE 8 или ниже и W3C dispatchEvent в большинстве других браузеров. Чтобы создать событие , которое вы хотите огнь, вы можете использовать либо
createEvent
или вcreateEventObject
зависимости от браузера.Вот не требующий пояснений фрагмент кода (из прототипа), который запускает событие
dataavailable
вelement
:источник
eventName
здесь содержится в переменной ?Рабочий пример:
Для старых браузеров polyfill и более сложных примеров смотрите MDN docs .
Смотрите таблицы поддержки для
EventTarget.dispatchEvent
иCustomEvent
.источник
detail
является свойствомEvent
, поэтому присвойте им любые данные, к которым вы хотите получить доступ на другом конце, и получите к ним доступevent.detail
. +1Если вы не хотите использовать jQuery и не особенно заботитесь о обратной совместимости, просто используйте:
Смотрите документацию здесь и здесь .
РЕДАКТИРОВАТЬ: В зависимости от вашей настройки вы можете добавить
bubbles: true
:источник
CustomEvent
и соответствующий polyfill.если вы используете JQuery, вы можете просто сделать
и справиться с этим
где «[arg0, arg1, ..., argN]» означает, что эти аргументы являются необязательными.
источник
Если вы поддерживаете IE9 +, вы можете использовать следующее. Та же концепция заложена в JQuery «Вам может не понадобиться» .
Если вы уже используете jQuery, вот версия jQuery приведенного выше кода.
источник
window.CustomEvent
существует, но его нельзя вызвать как конструктор: caniuse.com/#search=CustomEvent ;)Я искал событие щелчка, запуска мыши и наведения мыши при наведении курсора мыши с помощью JavaScript. Я нашел ответ, предоставленный Хуаном Мендесом . Для ответа нажмите здесь .
Нажмите здесь - живое демо, и ниже код:
источник
Просто, чтобы предложить альтернативу, которая не требует необходимости вручную вызывать событие слушателя:
Что бы ни делал ваш прослушиватель событий, переместите его в функцию и вызовите эту функцию из прослушивателя событий.
Затем вы можете также вызвать эту функцию где угодно, чтобы выполнить то же самое, что и событие, которое происходит при его запуске.
Я нахожу это менее "интенсивным по коду" и легче читать.
источник
Я просто использовал следующее (кажется, гораздо проще):
В этом случае событие инициируется только в том случае, если значение действительно изменилось, как если бы вы вызывали его из-за потери локуса обычного фокуса, выполняемого пользователем.
источник
element.click()
.Модифицированный ответ @ Дориана для работы с IE:
Скрипка: https://jsfiddle.net/z6zom9d0/1/
СМОТРИТЕ ТАКЖЕ:
https://caniuse.com/#feat=customevent
источник
Принятый ответ не работал для меня, ни один из createEvent не работал.
В итоге у меня получилось:
Вот фрагмент:
Из чтения: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
источник
источник
Вы можете использовать эту функцию, которую я собрал вместе.
Запустите событие ниже:
Смотреть событие:
Надеюсь это поможет!
источник
Вы можете использовать приведенный ниже код для запуска события, используя метод Element:
Показать фрагмент кода
источник
Самый эффективный способ - вызвать ту же функцию, которая была зарегистрирована
addEventListener
напрямую.Вы также можете вызвать поддельное событие с
CustomEvent
и.Наконец, некоторые элементы, такие как
<input type="file">
поддержка.click()
метода.источник
это немедленно вызовет событие beforeinstallprompt
источник
Используйте вызов события jquery. Напишите ниже строку, где вы хотите вызвать onChange любого элемента.
element_id - это идентификатор элемента, onChange которого вы хотите вызвать.
Избегайте использования
Потому что у него очень мало поддержки. Обратитесь к этому документу за поддержкой .
источник
HTML
JS
источник
То, что вы хотите, это что-то вроде этого:
Используя jQuery, это будет примерно так:
источник
document.getElementByClassName
не существует 2.document.getElementsByClassName
существует, но возвращает список. 3. это работает только для нескольких избранных событий. 4. В последнем примере запускается событие jQuery, в котором не существует основного нативного события.