2010-05-16 23 views
34

Intentando disparar (activar) un evento de clic. Es fácil de hacer en jQuery, pero no puede encontrar la manera de establecer las coordenadas del evento y enviarlas.Activación de un evento JavaScript click() en coordenadas específicas

Básicamente, necesito activar un clic en una ubicación específica (que se calcula antes de la llamada al desencadenador).

¿Alguna manera de hacerlo (en jQuery o de otro modo)?

Gracias -

Respuesta

42

Establecer los pageX y pageY propiedades (la cual se normalizan) en el event object y pasarlo a .trigger(), así:

var e = new jQuery.Event("click"); 
e.pageX = 10; 
e.pageY = 10; 
$("#elem").trigger(e); 
+2

su código parece funcionar sin errores, pero el resultado deseado (posicionamiento de cursor dentro de un contenido div editable) no está ocurriendo. ¿Envía este método un evento nativo Click() como si hiciera clic físicamente en esa ubicación? No parece así. Gracias - – OneNerd

+0

@OneNerd - No es así, no es posible simular eventos exactamente como ocurren, al menos entre navegadores. ¿Qué estás haciendo con el resultado, es un controlador o un mapa de imagen? –

+1

bueno, aquí está mi verdadero problema (ver el enlace a otra publicación). Pensé que activar un evento de click() podría resolverlo, pero aparentemente no: http://stackoverflow.com/questions/2844649/javascript-contenteditable-getting-setting-caret-position – OneNerd

-3

El ".trigger()" acepta una llamada Parámetro "extraParameters" que podría usar para rellenar los coords XY, diría yo. Documentation

.trigger("click", [x, y]); 
+2

puede pasar una función anónima como el segundo parámetro de la llamada '.trigger'. Esa función devuelve una función de posición con los valores deseados superior e izquierdo. 'function() {this.position = function() {this.left = x; this.top = y; }; } ' –

Cuestiones relacionadas