检查以编程方式触发的html元素的click事件或单击鼠标

时间:2013-02-14 15:21:36

标签: jquery

我必须检查哪个触发了click事件,单击鼠标或.click()函数。有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以通过查看事件对象的pageXpageY属性来判断,如果使用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

Live Copy | Source

当然,如果某人变得非常聪明并构建了一个完整点击事件包括假的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
    }
});