我的活页夹:
$("#wrapper").on("focusin", ".someInputField", function(e, a) {
/* do something */
});
我的触发器:
$('.someInputField').trigger("focus", ["extra", "data"]);
如何获取“额外”和“数据”值? e.data
和a
始终未定义。 (Firefox 18)
然而相关问题:是否有可能区分 a)inputField通过Tab键或单击获得焦点 b)inputField通过一些.trigger()方法获得焦点?
答案 0 :(得分:0)
您触发活动的顺序非常重要:
$('input').on('focusin', function(event, extra, data) {
console.log(extra, data);
});
$('input').trigger('focusin', ['extra', 'data']);
<强> fiddle 强>
答案 1 :(得分:0)
以下是trigger
额外参数用法的示例:http://jsfiddle.net/UQTY2/10/
关于第二个问题,如果在使用trigger
函数时添加额外参数,则可以测试它是否是本机事件。在以下示例中,如果param1
和param2
不是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"]);