1

要素がクリックされたときに実行しようとしているカスタム変数/関数を作成しました。何らかの理由で、onload を表示することを決定し、.click() を無視します。私はこれを理解しようとしてしばらく時間を費やしましたが、あまり運がありません。

これが私のカスタム関数です:

var movebox = function (entry) {
    $imagebox.css('left' , '0');
    $('#wr').append(entry);
};

このように呼び出そうとしていますが、代わりにページが読み込まれたときに呼び出されます。

$l3.click(movebox('test'));
4

2 に答える 2

4

クリック イベント ハンドラーへの参照として関数を渡す代わりに、movebox 関数をすぐに呼び出しています。これは、JavaScript でよくある間違いです。代わりに、次のように無名関数内で関数を渡します。

$l3.click(function() { 
    movebox('test');
});

余談ですが、setTimeout、setInterval、addEventListener、および悪名高い eval で同じ間違いがしばしば行われます。関数を別の関数の引数として扱うときは、必ず無名関数でラップしてください。

于 2013-05-16T03:11:22.937 に答える
0

を呼び出してmovebox、戻り値をクリック イベント ハンドラーに渡します。この場合、.on()イベント登録ヘルパーをdata使用して、イベント オブジェクトを使用してアクセスできるイベント ハンドラーに要素を渡すことができます。

試す

 var movebox = function (e) {
    $imagebox.css('left' , '0');
    $('#wr').append(e.data.entry);
    };

$l3.on('click',{ entry: 'test'}, movebox);
于 2013-05-16T03:11:10.320 に答える