Получить событие через функцию-свойство объекта
Всем привет! Кто в курсе, как получить событие через функцию-свойство объекта. Код такой, тут вызывается событие - https://prnt.sc/1qzgkox. Тут происходит его обработка - https://prnt.sc/1qzgmdv. В обычном addEventListener() всё понятно, а как тут добрать до элемента, вызвавшего событие. Это Opencart, функция wishlist.add встроенная, переписывать её логику не хотелось бы, тем более, что это затронет конролеры, модель и ещё какую-нибудь абру-кадабру. Если существует способ подтащить событие в success средствами JS подскажите, буду очень признателен. Заранее спасибо!
|
romveld, испоняющееся прямо сейчас событие лежит в window.event, но во-первых оно deprecated и его могут когда-нить выпилить, а во вторых success исполнится не в момент вызова, а когда придёт ответ, так что это не поможет без доп. подготовки.
Если ты не можешь переписать add, то что именно ты переписать можешь, не очень понятно? Если тебе нужна именно кнопка - ты можешь зафигачить костыль от обратного: const currentButton = document.querySelector(`button[onclick="wishlist.add('${product_id}');"]`); alert(currentButton); Но это сработает только если такая кнопка одна на продукт.) |
Нет, переписать можно всё, просто это будет сопровождаться большой вознёй, хотелось сократить количество усилий, но если простого решения нет, то придётся что-то выдумывать. Спасибо за ответ!
|
romveld, и таки я всё равно не понял, что именно можно переписать "без возни"?
Часть, что лежит в success? Тогда чем это отличается от переписывания add? Сверху add кладёшь const event = window.event; в success юзаешь... |
Вот это помогло, спасибо! Я правда ещё один способ нашёл подтянуть дата-атрибут элемента, по которому я кликаю и сравнить его с идентификатором, который я получал с сервера, но это уже ладно. В общем сложностей никаких, просто не сразу вник как это проще сделать, пошёл по сложному пути, думал менять способ вывода данных с сервера, а это сопряжено с допилом функций в контроллерах, моделях и т. п. Короче проблема решена, благодарю!
|
Часовой пояс GMT +3, время: 18:12. |