2

ユーザーが新しいメモを追加します。メモはデータベースに追加され、ユーザーに表示するメモの HTML を返し、そのメモのコンテキスト メニューを返します。

success: function( result ) {

   var resultArray = eval( result );

   $( "#notes").append( resultArray[0] );
   $( "#notes").append( resultArray[1] );
}

resultArray[0] は次のとおりです。

<tr class="getMenuNote contextMenuPointer-note" id="<?php echo $note->id ?>">
   /*details of note here... nothing interesting and works just fine*/
</tr>

resultArray[1] は次のとおりです。

<div class="contextMenu" id="menu-<?php echo $note->id ?>" class="dropdown clearfix">
   <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu">
      <li><a tabindex="-1" href="" class="deleteNote" noteID="<?php echo $note->id ?>">Delete</a></li>
   </ul>
</div>

問題は、ユーザーがメモをクリックすると、.getMenuNote が呼び出されることです。ドキュメントのロード時にロードされました。.getMenuNote は、新しく追加された HTML が存在することを認識せず、それらをリンクできないことを理解していますが、それが存在することをどのように知ることができますか?

.on() と .live() を調べましたが、うまくいかないようです。理論ではなく、コードによる解決策を探しています。

皆さんありがとう!

EDITED イベントハンドラーは次のとおりです。

$( ".getMenuNote" ).click( "contextmenu", function ( e ) {

   noteID = $( this ).attr( "id" );

   $( "#menu-" + noteID ).css( {
      display: "block",
      left: e.pageX,
      top: e.page
   } );

   return false;
} );
4

1 に答える 1