0

したがって、この質問には2つの重要な詳細があります。

  1. ドキュメントレディのコールバック関数のスコープ内
  2. イベントがアタッチされている要素は、実際にはDOMに存在しません

これがシナリオの視覚的表現です

$(document).ready(function() {
    $('#myNonExistentElement').on('click', function() {
        //do something
    });
});

そのような状況で、そのクリックイベントを(コンソールなどを介して)プログラムでトリガーすることは可能ですか?

4

2 に答える 2

2

簡単な答えはノーだと思います。

ただし、質問に当てはまる可能性のある2つのケースがあります。

1) イベント ハンドラー コードを実行するだけの場合は、(無名関数の代わりに) 名前付き関数を使用し、必要なときにいつでも呼び出します。

2) DOM にはまだ存在しないが、将来的に存在することがわかっているオブジェクトにクリック ハンドラーをバインドする場合は、次のようなコードを使用できます。

$(document).ready(function() {
  $('body').on('click', '#myNonExistentElement', function() {
    //do something
  });
});

http://api.jquery.com/on/で委任されたイベントに関するセクションを参照してください。

于 2012-05-18T20:32:48.003 に答える
1

jQuery (または少なくとも.on) を介して存在しない要素にイベントをバインドしようとすると、新しいイベントはバインドされません。

サンプルケースはこちら

*怠け者なので、ここからイベント コードを盗みました。

于 2012-05-18T20:31:28.993 に答える