TriggerHandler没有参数

时间:2014-01-21 07:00:12

标签: jquery mouseevent

我有一个使用mousedown绑定到div的事件处理程序。当我点击其他div时,我也会触发这个处理程序。

//The original binding
$('#somediv').on('mousedown', { key: 'value' }, handlers.downHandler);

//This is what I'm doing to trigger the above handler
$('#someotherdiv').on('mousedown', function(e){
    $(#somediv').triggerHandler('mousedown', { secondkey: 'secondvalue' });
});

downHandler看起来像这样:

function downHandler(e){
    console.log(e.data.key); //Prints value

    if(typeof e.data.secondkey !== 'undefined')
        console.log(e.data.secondkey)
    else
        console.log('Undefined');
}

现在,在我的处理程序中,e.data只有原始绑定的键值,而不是触发器的第二个键/秒值。无论如何要解决这个问题?

2 个答案:

答案 0 :(得分:0)

应该是

$('#somediv').triggerHandler('mousedown', { 'secondkey': secondvalue});

答案 1 :(得分:0)

extrcparameter参数作为附加参数传递给事件处理程序,而不是作为数据对象

尝试

//The original binding
$('#somediv').on('mousedown', {
    key: 'value'
}, function (e, extra1) {
    console.log('data', e.data)
    console.log('extra1', extra1)
});

//This is what I'm doing to trigger the above handler
$('#someotherdiv').on('mousedown', function (e) {
    $('#somediv').triggerHandler('mousedown', {
        secondkey: 'secondvalue'
    });
});

演示:Fiddle