Javascript jQuery focusin事件:为什么event.data为空?

Javascript jQuery focusin事件:为什么event.data为空?,javascript,jquery,events,focus,Javascript,Jquery,Events,Focus,我的活页夹: $("#wrapper").on("focusin", ".someInputField", function(e, a) { /* do something */ }); 我的触发器: $('.someInputField').trigger("focus", ["extra", "data"]); 如何获得“额外”和“数据”值e。数据和a始终未定义。(Firefox 18) 然而相关问题:是否有可能区分 a) inputField通过选项卡或单击获得焦点 b) in

我的活页夹:

$("#wrapper").on("focusin", ".someInputField", function(e, a) {
    /* do something */
});
我的触发器:

$('.someInputField').trigger("focus", ["extra", "data"]);
如何获得“额外”和“数据”值<代码>e。数据和
a
始终未定义。(Firefox 18)

然而相关问题:是否有可能区分 a) inputField通过选项卡或单击获得焦点
b) inputField通过一些.trigger()方法获得焦点?

触发事件的顺序在这里很重要:

$('input').on('focusin', function(event, extra, data) {
    console.log(extra, data);
});
$('input').trigger('focusin', ['extra', 'data']);

以下是
触发器使用额外参数的示例:

关于第二个问题,如果在使用
trigger
函数时添加了一个额外的参数,则可以测试它是否为本机事件。在以下示例中,如果
param1
param2
不是
null
,则已从
触发器
函数调用事件:

$("#wrapper").on("focus", ".someInputField", function(e, param1, param2) {
    /* do something */
    param1 = param1 || null;
    param2 = param2 || null;

    //param 1 and param2 are not null if the event has been called from trigger function
    console.log(param1);
    console.log(param2);   
});

$('.someInputField').trigger("focus", ["data","test"]);

感谢您的快速回复,这应该可以工作,但是在控制台中显示“未定义”。试试看!在小提琴中工作,在我的项目中不工作。:/谢谢,我再试试。@Heiko好的!你的问题现在有答案吗?然后按原样标记它!我们可能在jQuery1.9.0中偶然发现了一个bug。在jQuery1.8.3中可以很好地工作,但在较新版本中不行。你能证实吗?@Heiko不,我不能!即使使用1.7.2: