ユーザーが新しいメモを追加します。メモはデータベースに追加され、ユーザーに表示するメモの 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;
} );