Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как при помощи jquery получить dispatchEvent? (https://javascript.ru/forum/events/76528-kak-pri-pomoshhi-jquery-poluchit-dispatchevent.html)

Signal 20.01.2019 06:32

Как при помощи jquery получить dispatchEvent?
 
вообщем проблема такая, из расширения надо клацнуть на нужный элемент на странице, на некоторыйх сайтах работает по обычному
$(elem).click();
или 
$(elem).trigger();

но есть такие, на которых это не срабатывает, нашел решение вот такое

var dispatchMouseEvent = function(target, var_args) {
  var e = document.createEvent("MouseEvents");
  // If you need clientX, clientY, etc., you can call
  // initMouseEvent instead of initEvent
  e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));
  try {
  target.dispatchEvent(e);
  } catch (Err) {
	  console.log(Err);
  }
};    


ну и сам клик:
	 let EleClick = document.getElementById('idElem');
        dispatchMouseEvent(EleClick, 'mouseover', true, true);
        dispatchMouseEvent(EleClick, 'mousedown', true, true);
        dispatchMouseEvent(EleClick, 'click', true, true);
        dispatchMouseEvent(EleClick, 'mouseup', true, true);

но возникла проблема, елемент на который надо кликнуть в результате обработки сайта получает ссылку на него в виде jquery объекта

и соответсвенно эта функция перестает работать, вернее матерится на 
  target.dispatchEvent(e);


как из jquery объекта получить ссылку в виде результата после document.getElementById('idElem'); или аналогичных?

рони 20.01.2019 08:27

Цитата:

Сообщение от Signal
jquery объект[0]

:-?

Signal 20.01.2019 10:09

Цитата:

Сообщение от рони (Сообщение 502347)
:-?

а по конкретнее? не понял, причем тут обджект 0, в если у меня 1 елемнет и есть в переменной как объект jquery

рони 20.01.2019 10:22

Цитата:

Сообщение от Signal
а по конкретнее?

let EleClick = $(elem)[0];

рони 20.01.2019 10:25

Signal,
document.getElementById('idElem') === $('#idElem')[0] так понятнее?

Signal 20.01.2019 11:12

понял, все пашет благодарствую


Часовой пояс GMT +3, время: 11:45.