2

index.php があり、jQuery .load() を使用して load.php からコンテンツをロードします。

index.php にある要素でイベントをトリガーすると、イベントが発生します。同じ要素で、.load() を使用して index.php にロードすると、イベントが発生しません!?

なんで?私は間違っていますか?

たとえば FireBug でページをプレビューすると、要素の #id は本来あるべきものとまったく同じですが、次のような関数でさえ機能しません。

$('#clickme').click(function() {
    alert('hello');
});

要素が index.php に配置され、.load() でロードされていない場合、同じ関数が機能します。何か案は??

事前にどうもありがとうございました!

4

2 に答える 2

3

Usingclickは、呼び出された時点で要素にイベント リスナーを作成します。が呼び出された時点で要素が存在しない場合click、リスナーは作成されません。on(またはdelegate古いバージョンのjqueryで) イベント委任を使用する必要があります。

on のドキュメントを見て、委任について読んでください。次のようなものが必要です。

$("<selector of static ancestor>").on("click", "#clickme" , function(){})
于 2012-04-20T20:15:09.573 に答える
2

イベントバインダーは、click実行後に作成された要素にはバインドされません。メソッドclickの直後にリスナーを追加するか、またはのようなものを使用してDOMの要素パターンにバインドすることができます。.load()livedelegate

于 2012-04-20T20:18:45.467 に答える