如何检测jquery.trigger引发单击事件的时间?

时间:2013-03-06 06:46:20

标签: jquery

我有一个按钮,可以在点击时执行某些操作。例如

$(function() {

    $('button1').click(function(e){
        /** This is just a pseudocode

        if( me.triggering ) {
            doTrigger();
        }else{
            doClick();
        }

        **/
    })

    $('button2').click(function(e){
        $('button1').trigger('click')
    })

});

如何通过调用trigger或用户点击来判断事件是否正在执行?

1 个答案:

答案 0 :(得分:5)

检查e.originalEvent。它应该在真正点击的情况下设置:

$('button1').click(function(e) {
    if (e.originalEvent) {
        doClick();
    }
    else {
        doTrigger();
    }
});

http://jsfiddle.net/nCzaC/

您还可以在触发事件时传递其他标志参数以区分触发器:

$('#button1').trigger('click', [true]);

$('#button1').click(function (e, trigger) {
    if (!trigger) {
        alert('do click');
    } else {
        alert('do trigger');
    }
})