1

私のバインダー:

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

私のトリガー:

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

「extra」と「data」の値を取得するにはどうすればよいですか?e.dataa常に未定義です。(Firefox 18)

ただし、関連する質問:a)inputFieldがタブまたはクリックによってフォーカスを取得したb)inputFieldが.trigger()メソッドによってフォーカスを取得したことを区別する可能性はありますか?

4

2 に答える 2

0

ここでは、イベントをトリガーする順序が重要です。

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

フィドル

于 2013-02-10T14:57:25.637 に答える
0

trigger追加のパラメータの使用例を次に示します:http: //jsfiddle.net/UQTY2/10/

2番目の質問については、関数を使用しているときにパラメーターを追加すると、triggerそれがネイティブイベントであるかどうかをテストできます。次の例では、param1param2がNOTの場合、イベントは関数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 に答える