optimista
optimista

Reputation: 824

Get clicked element by a trigger

Is there any way how to get element selector which was clicked by trigger? I'm trying to avoid specification of certain element in trigger method like $("#certain_element").trigger(e); I want to call a trigger on some position in the page defined by pageX and pageY params and then get an element which was clicked.

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);
});

This script isn't working correctly.

Upvotes: 0

Views: 312

Answers (2)

Jake Feasel
Jake Feasel

Reputation: 16955

Based on the comments from Andrew and Anurag:

$(document.elementFromPoint(80, 40))
  .trigger('click')
  .css('background-color', 'blue');

Upvotes: 1

gustavotkg
gustavotkg

Reputation: 4399

You are triggering it BEFORE binding the click.

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);

Eventhough, if I were you, I'd use another selector, which would not trigger the event for window, document and another unecessary tags.

$(documnet.body).find('*').click(...);
$(document.body).find('*').trigger(e);

Upvotes: 0

Related Questions