1

我有一个按钮,当它被点击时会做一些动作。例如

$(function() {

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

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

        **/
    })

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

});

如何判断事件是通过调用trigger还是来自用户点击来执行?

4

1 回答 1

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');
    }
})
于 2013-03-06T06:50:18.853 回答