我必须检查哪个触发了click事件,单击鼠标或.click()函数。有可能吗?
答案 0 :(得分:1)
您可以通过查看事件对象的pageX
或pageY
属性来判断,如果使用undefined
,则为$("some selector").click();
,但如果是实际的,则为(function($) {
$("#target").click(function(e) {
if (typeof e.pageX === "undefined") {
display("Fired programatically");
}
else {
display("Fired by real click");
}
});
setTimeout(function() {
$("#target").click();
}, 500);
function display(msg) {
$("<p>").html(String(msg)).appendTo(document.body);
}
})(jQuery);
鼠标点击发生。例如:
pageX
当然,如果某人变得非常聪明并构建了一个完整点击事件包括假的pageY
和$("some selector").click();
信息,那将无法正常工作,但jQuery&# 39; {{1}}的默认处理不会这样做。
答案 1 :(得分:1)
是的,你可以这样做......
$('button').on("click", function(e){
if (e.originalEvent !== undefined) {
// the button was actually clicked
} else {
// the button was triggered by code
}
});