1

ASP.Net で AJAX と jQuery を使用して MVC3 テクノロジを使用しています。

私の要件に従って、テーブルを動的に作成しました。それぞれの最後tdに次のtrようなハイパーリンクがあります<a href = "#">edit</a>

ユーザー定義関数内にテーブルを生成するコードをカプセル化しましたが、問題は、関数の外部から jQuery を使用してハイパーリンクのクリック イベントを生成するたびに、テーブルがページによって認識されないことです。当然、ハイパーリンクのような属性だけでなくテーブルの子も認識できないため、ハイパーリンクのクリックイベントを発生させることはできません。

解決策を見つけるのを手伝ってください。

4

1 に答える 1

2

あなたが直面している問題は、イベントが動的に生成された要素にバインドされていないことです (イベントバインディングの時点で DOM に存在しないため)。これに対処するには、 を使用しon()、セレクターを渡して、イベントを処理する要素タイプを識別します。

$(selector).on('click', 'table a', function(e){
    // do stuff here when a link inside a table is clicked
});

または、代わりに使用できますdelegate()(jQuery のバージョンが 1.7 より前の場合):

$(selector).delegate('table a', 'click', function(e){
    // do stuff here when a link inside a table is clicked
});

参考文献:

于 2012-08-04T20:29:47.090 に答える