1

JavaScript / jQuery関数を呼び出すこれらの2つの方法の違い(もしあれば)を理解しようとしています。

方法1 document.ready()、:

$('body').on('click', 'a.popup', popup);

それから

function popup() {
    $(this) // do something    
}

方法2 document.ready()、:

popup();

それから

function popup() {
    $("a.popup").click(function (e) {
        // do something here
    });
}

すべてのアドバイスに感謝します。

4

2 に答える 2

6

方法 2 では、popup関数は 1 回だけ呼び出される可能性が高く、それ以外の場合は、同じ関数onclickを複数回アタッチすることになります。したがって、popup関数の本体を に直接記述する以外に大きな利点はありませんdocument.ready()

方法 1 の利点は、同じ関数をさまざまなイベントやさまざまな要素 (たとえば など) にアタッチする場合ですonclickonmousemoveこの方法では、関数の本体を 2 回記述する必要がありません。

要するに、方法 2 では利点が見られませんが、方法 1 では利点が見られます。

于 2013-03-21T13:54:03.363 に答える
0

よくわかりませんが、jQuery .on() メソッドの呼び出しと jQuery .click()メソッドの呼び出しの違いを尋ねていると思いますよね?

次のように:

$someEl.on('click', someFunc);
// or
$someEl.click(someFunc);

このように、どちらもほぼ同等です。ただし、.on() メソッドを使用すると、要素のイベントに名前空間 (最初のリンクで説明) を導入する機会があります。そのようです:

$someEl.on('click.do1', someFunc1);
$someEl.on('click.do2', someFunc2);

したがって、後の進行でコールバック関数 (someFunc1、someFunc2) の 1 つだけを削除またはトリガーする場合は、次のように呼び出して実行できます。

$someEl.off('click.do1');
$someEl.trigger('click.do2');

お役に立てれば

于 2013-03-21T14:00:03.280 に答える