Bạn có thể có một cái nhìn tại các đối tượng sự kiện e
. Nếu sự kiện được kích hoạt bằng một nhấp chuột thực, bạn sẽ có những thứ như clientX
, clientY
, pageX
, pageY
, v.v. bên trong e
và chúng sẽ là số; những con số này có liên quan đến vị trí chuột khi nhấp chuột được kích hoạt nhưng chúng có thể sẽ xuất hiện ngay cả khi nhấp chuột được bắt đầu thông qua bàn phím. Nếu sự kiện được kích hoạt bởi $x.click()
thì bạn sẽ không có các giá trị vị trí thông thường trong e
. Bạn cũng có thể xem originalEvent
property, không nên ở đó nếu sự kiện đến từ $x.click()
.
Có lẽ một cái gì đó như thế này:
$("#foo").click(function(e){
if(e.hasOwnProperty('originalEvent'))
// Probably a real click.
else
// Probably a fake click.
});
Và đây là một sandbox chút để chơi với: http://jsfiddle.net/UtzND/
Nguồn
2011-07-13 06:16:50
Làm thế nào để chương trình đi về bắn một sự kiện lập trình? – Clayton
Tại sao bạn cần phải phân biệt các trường hợp? –
@Clayton: '$ x.click()' hoặc '$ x.trigger ('click')'. –