Angular 8: Как отправить событие клика на указанную c координату - PullRequest
0 голосов
/ 21 января 2020

Я хочу знать, как отправить событие нажатия на указанную c координату на экране, например, на пиксель (700 700) в angular?

Я искал этот вопрос и нашел решения только для чистого javascript, где вы можете использовать элемент документа, но вы не можете сделать это в angular 8.

Моя первоначальная проблема: у меня есть элемент div, у которого есть событие click, обратный вызов события click проверяет, щелкнул ли он в указанной области c, если это произойдет, это минимизирует div. Поэтому я хочу написать юнит-тест и отправить события клика в этот div.

Как я могу это сделать? Спасибо вперед.

Ответы [ 3 ]

0 голосов
/ 21 января 2020

Надеюсь, я вас правильно понимаю ...

Если вы хотите запустить, нажмите на spesifi c div, вы можете использовать @ViewChild('YOUR_DIV_ID', {static: true}) div;

, а затем, на вашем тесте, Вы можете вызвать событие клика - div.nativeElement.click()

0 голосов
/ 22 января 2020

Так что это работает для меня:

Внутри моего юнит-теста:

let section = fixture.debugElement.queryAll(By.css('.data-wrapper'))[0];
const mouseDblEvent = new MouseEvent('dblclick', <MouseEventInit>{ clientX: 700, clientY: 700 }) ;

section.nativeElement.dispatchEvent(mouseDblEvent);
fixture.detectChanges();

Основная идея здесь заключалась в создании MouseEvent с параметрами initail.

0 голосов
/ 21 января 2020

Если у вас есть событие (click) в div, добавьте его к компоненту, чтобы получить координаты:

onClickEvent(event: MouseEvent) {
  const x = event.offsetX,
  const y = event.offsetY
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...