2

jQuery関数について調べていtrigger()ました。定義とすべてを取得しましたが、なぜこれを使用する必要があるのか​​ わかりませんでした。与えられたように

$('#foo').on('click', function() {
    alert($(this).text());
});
$('#foo').trigger('click');

これは、ページが読み込まれ、id "foo" のボタンが 1 回クリックされると、ポップアップを返します。

しかし、これは単に click() または追加するだけでも実行できます

$('#foo').on('click', function() {
    alert($(this).text());
});

なぜ、いつこれを使用する必要があるのか​​ 、そしてそれがどのように正確に機能するのか理解できませんでした?

これについては他のリソースから読みましたが、ここからの回答はより満足のいくものです。

前もって感謝します

4

3 に答える 3

2

このコードを使用して

$('#foo').on('click', function() {
    alert($(this).text());
});

クリックのリスナーを追加するだけで、アイテムをクリックするたびに、自動的ではなく、このアラートのみが発生します。

ただし、一致した条件に基づく要件が一致した場合は、そのアラートを表示し、ユーザーが実際にアイテムをクリックしていない場合は、js からトリガーできます。

これを使って

$('#foo').trigger('click');

今話していること.click()は上記の関数を呼び出すだけなので、1 つの関数呼び出しのバインドと戻りを節約できます ....

したがって、トリガーよりも技術的に遅いですが、この呼び出しと戻りのわずかな遅延がプロジェクトにとって重要です

于 2013-05-16T10:24:36.680 に答える
2

.trigger()実際には高速で、関数が 1 つ少なくなります。

内部的には、.click()メソッドは実際に最終的に以下を使用します.trigger()

jQuery.fn.click = function (data, fn) {
    if (fn == null) {
        fn = data;
        data = null;
    }

     return arguments.length > 0 ? this.on("click", null, data, fn) : this.trigger("click");
}
于 2013-05-16T10:24:07.697 に答える