Получить нажатый элемент по триггеру - PullRequest
0 голосов
/ 26 ноября 2011

Есть ли способ, как получить селектор элемента, который был нажат триггером? Я пытаюсь избежать указания определенного элемента в методе триггера, например $("#certain_element").trigger(e);. Я хочу вызвать триггер для некоторой позиции на странице, определенной параметрами pageX и pageY, а затем получить элемент, по которому был выполнен щелчок.

var e = new jQuery.Event("click");
e.pageX = 80;
e.pageY = 40;
$('*').trigger(e);

$('*').click(function() {
  alert('This element was clicked:'+$(this).get(0).tagName);
});

Этот скрипт не работает правильно.

Ответы [ 2 ]

1 голос
/ 26 ноября 2011

На основании комментариев Андрея и Анурага:

$(document.elementFromPoint(80, 40))
  .trigger('click')
  .css('background-color', 'blue');
0 голосов
/ 26 ноября 2011

Вы запускаете его ПЕРЕД привязкой клика.

var e = new jQuery.Event("click");
e.pageX = 80;
e.pageY = 40;
// binds
$('*').click(function() {
  alert('This element was clicked:'+$(this).get(0).tagName);
});
// then triggers
$('*').trigger(e);

Даже если бы вы были на вашем месте, я бы использовал другой селектор, который бы не вызывал событие для окна, документа и других ненужных тегов.

$(documnet.body).find('*').click(...);
$(document.body).find('*').trigger(e);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...