1

我的活页夹:

$("#wrapper").on("focusin", ".someInputField", function(e, a) {
    /* do something */
});

我的触发器:

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

如何获得“额外”和“数据”值?e.data并且a总是未定义的。(火狐 18)

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

4

2 回答 2

0

这是trigger额外参数使用的示例:http: //jsfiddle.net/UQTY2/10/

关于你的第二个问题,如果你在使用trigger函数时添加了一个额外的参数,你可以测试它是否是原生事件。在以下示例中,如果param1param2不是null,则事件已从trigger函数调用:

$("#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"]);
于 2013-02-10T14:57:48.777 回答
0

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

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

小提琴

于 2013-02-10T14:57:25.637 回答