2010-05-16 29 views
34

Bir tıklama olayını tetiklemeye (tetiklemeye) çalışın. JQuery'de kullanımı kolaydır, ancak olayın koordinatlarını nasıl ayarlayacağını ve gönderileceğini anlayamaz. Temel olarak, belirli bir konumda (tıklama() çağrısından önce hesaplanan) bir tıklamayı tetiklemem gerekir.Belirli bir koordinatta JavaScript click() olayını tetikleme

Bunu yapmanın herhangi bir yolu (jQuery'de veya başka şekilde)?

Teşekkür -

cevap

42

böyle, event object üzerinde pageX ve pageY özelliklerini (normalleştirildiğini) ayarlayın ve .trigger() iletecek:

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

kodunuzu hatasız çalışmasına görünür, ancak (bir içerik düzenlenebilir div içindeki imleci) istenen sonuç meydana gelmiyor. Bu yöntem, bu konumu fiziksel olarak tıklatmışım gibi bir native click() olayı gönderir mi? Öyle görünmüyor. Teşekkürler - – OneNerd

+0

@OneNerd - Bu, olayların tam olarak olduğu gibi, en azından çapraz tarayıcıyı simüle etmek mümkün değildir. Sonuçta ne yapıyorsunuz, bir işleyici mi yoksa bir resim haritası mı? –

+1

iyi, işte benim asıl meselem (bkz. Diğer yazıya bağlantı). Bir click() olayının onu çözebileceğini düşündüm - ama görünüşe göre değil: http://stackoverflow.com/questions/2844649/javascript-contenteditable-getting-setting-caret-position – OneNerd

-3

".trigger()" çağrısı kabul eden bir Ben XY kooruklarını doldurmak için kullanabileceğiniz "extraParameters" parametresini düşünürdüm. Documentation

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

, anonim bir işlevi, '.trigger' çağrısının ikinci parametresi olarak iletebilirsiniz. Bu işlev, istenen üst ve sol değerlerle bir konum işlevi döndürür. 'function() {this.position = işlev() {this.left = x; this.top = y; }; } ' –

İlgili konular