2010-05-16 5 views

Répondre

42

Définissez les propriétés pageX et pageY (qui sont normalisés) sur la event object et le transmettre à .trigger(), comme ceci:

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

votre code semble fonctionner sans erreur, mais le résultat souhaité (positionnement du curseur à l'intérieur d'un contenu modifiable div) ne se produit pas. Cette méthode envoie-t-elle un événement click() natif comme si je cliquais physiquement sur cet emplacement? Cela ne semble pas. Merci - – OneNerd

+0

@OneNerd - Il ne fonctionne pas, il n'est pas possible de simuler des événements exactement comme ils se produisent, au moins cross-navigateur. Que faites-vous avec le résultat, est-ce un gestionnaire ou une carte d'image? –

+1

Eh bien, voici mon vrai problème (voir le lien vers un autre poste). Je pensais que déclencher un événement click() pourrait le résoudre - mais apparemment pas: http://stackoverflow.com/questions/2844649/javascript-contenteditable-getting-setting-caret-position – OneNerd

-3

L'appel ".trigger()" accepte une Paramètre "extraParameters" que vous pourriez utiliser pour bourrer les coords XY, je pense. Documentation

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

vous pouvez passer une fonction anonyme en tant que second paramètre de l'appel '.trigger'. Cette fonction renvoie une fonction de position avec les valeurs supérieure et gauche souhaitées. 'function() {this.position = function() {this.left = x; this.top = y; } } ' –

Questions connexes