2010-05-16 31 views
34

Cố gắng kích hoạt (kích hoạt) sự kiện nhấp chuột. Dễ thực hiện trong jQuery, nhưng không thể tìm ra cách thiết lập tọa độ của sự kiện và gửi chúng cùng.Kích hoạt sự kiện nhấp chuột() tại các tọa độ cụ thể

Về cơ bản, tôi cần kích hoạt nhấp chuột tại một vị trí cụ thể (được tính toán trước cuộc gọi trigger()).

Bất kỳ cách nào để thực hiện việc này (trong jQuery hay cách khác)?

Cảm ơn -

Trả lời

42

Đặt pageXpageY tài sản (trong đó là bình thường) trên event object và vượt qua nó để .trigger(), như thế này:

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

mã của bạn dường như chạy không có lỗi, nhưng kết quả mong muốn (con trỏ định vị bên trong div có thể chỉnh sửa nội dung) không xuất hiện. Phương thức này có gửi sự kiện click() gốc như thể tôi đã nhấp vào vị trí đó không? Nó không xuất hiện như vậy. Cảm ơn - – OneNerd

+0

@OneNerd - Nó không, không thể mô phỏng các sự kiện chính xác như chúng xảy ra, ít nhất là trình duyệt chéo. Bạn đang làm gì với kết quả, nó có phải là một trình xử lý hoặc một bản đồ hình ảnh? –

+1

tốt, đây là vấn đề thực sự của tôi (xem liên kết đến bài đăng khác). Tôi nghĩ rằng kích hoạt một sự kiện click() có thể giải quyết nó - nhưng dường như không: http://stackoverflow.com/questions/2844649/javascript-contenteditable-getting-setting-caret-position – OneNerd

-3

Các ".trigger()" gọi chấp nhận một Tham số "extraParameters" mà bạn có thể sử dụng để nhồi nhét thanh kiếm XY vào tôi nghĩ. Documentation

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

bạn có thể chuyển một hàm ẩn danh làm tham số thứ hai của lệnh '.trigger'. Hàm đó trả về một hàm vị trí với các giá trị trên cùng và bên trái mong muốn. 'function() {this.position = function() {this.left = x; this.top = y; }; } ' –

Các vấn đề liên quan