检查是否通过物理鼠标点击触发了点击事件?

时间:2011-07-17 05:29:20

标签: javascript jquery

我有一个按钮,我决定触发该按钮:

$(button_name).trigger("click");

该函数的处理程序要求左键在使用鼠标触发时触发单击,但也通过触发使用代码来接受点击,如上面所示的行。如何创建条件语句来评估这些条件是否为真?

if((navigator.appName === "Microsoft Internet Explorer" && window.event.button === 1) 
    || window.event.button == 0
    || ...){

    /* If true, do this */
}

2 个答案:

答案 0 :(得分:4)

click处理程序的第一个参数是事件对象。如果它是一个物理鼠标点击它将具有clientXclientY属性 - 如果它是程序化的,它不会。

$('#button').click(function (e) {
    if (e.clientX) {
        // physical click
    } else {
        // program click
    } 
});

答案 1 :(得分:0)

如果您正在尝试获得完整的跨浏览器支持和未来证明,我认为您不能,js在添加和修改属性方面非常合规,但我的问题是“你应该吗?”有几次模拟鼠标点击的能力实际上节省了大量的时间和精力。