0

テーブル/グリッドのリンクにイベントを添付するために、プロジェクトにlivequeryを使用しています。グリッドは、ページ分割された ajax 呼び出しです。 確認可能なリンクは、クリックするとダイアログが表示されます。このクリック イベントは、ライブクエリを使用してグリッドにアタッチされます。

以下は、グリッド/テーブル構造のモックアップです。#ajaxGrid 部分は、ページネーション ajax 呼び出しで HTML として返されます。

<div id="ajaxgridDiv">
  <div id="ajaxGrid">
     <a href="#" class="confirmableLink">Click here for a Jquery UI dialog</a>
     <div class="paginator">
      //links to prev/next  pages.
     </div>
  </div>
</div> 

このような状況で livequery の代わりに.live()または.delegate()を使用するにはどうすればよいですか。私の問題は、デリゲートを使用して「ロード」イベントをアタッチできないという事実から発生します。そのようなイベントはバブルアップされません。

4

1 に答える 1

0

私が思いついた唯一の解決策は
、次のようなajaxGrid HTMLとともにスクリプトスニペットを返すことでした

<script type="text/javascript">
 $(function(){
     $('ajaxGrid').trigger('ajaxGridLoadEvent');
});
</script>

メインページで委任を次のように構成します。

 <script type="text/javascript">
 $(function(){
     $('ajaxGridDiv').delegate('#ajaxGrid','ajaxGridLoadEvent',function(){
         //attach click events to the confirmableLinks 
     });
});
</script>
于 2011-11-11T23:19:53.290 に答える