¿Cómo puedo aplicar un clic en una posición específica en un lienzo? (usar coordenadas me parece lo más lógico, pero no encuentro la forma de hacerlo, cualquier otra idea es bienvenida). Tenga en cuenta que no tengo acceso al código que crea el lienzo.
EDITAR: alguna aclaración, el lienzo tiene varios elementos que se están dibujando que no puedo seleccionar con jquery pero necesito hacer clic en ellos. Podría encontrar sus coordenadas manualmente y hacer algunos cálculos, pero cada vez que intento pasar un evento de clic o mouse a esa posición no se toma como un clic de mouse real (el botón en el que se debe hacer clic no lo es).
¿Qué tal si lo intentas?
canvas.on('click', function(e) { // calculate xy coordinates on canvas var x = e.pageX - $(this).offset().left, y = e.pageY - $(this).offset().top; // implement collision detection via the coordinates the element you want to click (assuming you know where it is) if (y > <elementY> && y < <elementY> + <elementHeight> && x > <elementX> && x < <elementX> + <elementWidth>) { alert('found it'); } });No tengo tiempo para probar ese fragmento. Si conoce las coordenadas x e y de sus elementos dentro de su lienzo, ese código podría funcionar.
Lo que traté de hacer con ese fragmento es simular un cuadro delimitador a través de elmentY y elementY + elementHeight , así como elementX y elementX + elementWidth . Si conoce todos esos valores, simplemente puede verificar si los valores x e y de su evento de clic se encuentran en dicho cuadro.
Editar
Si desea activar un evento de clic en una determinada posición, defina el evento de clic de antemano y configure los atributos pageX y pageY.
var e = new jQuery.Event("click"); e.pageX = 10; e.pageY = 10; $(<canvas>).trigger(e);Es posible que también deba incluir el desplazamiento de su lienzo en los cálculos.