次のような追加を使用してjQueryによって出力されたハイパーリンクがあります。
$('#content').append('<div id="appenddocumentationcontent">'+documentation_contentvalue + " <a title='Click to Edit' id='edit_content'>[Edit]</a></div>");
生成された HTML は次のとおりです。
<div id="content">
<div id="appenddocumentationcontent">The quick brown fox jumps over the lazy dog <a id="edit_content" title="Click to Edit">[Edit]</a>
</div>
</div>
クリックするとテキスト領域が表示される jQuery を使用したクリック イベントがあり、編集ハイパーリンクが初めてクリックされた場合は正常に動作します (セレクターがハイパーリンクに一致していることに注意してください)。
$('#content #edit_content').click(function() {
//Show textarea
$('#textarea_documentation_content').show();
//Show OK button to close again this textbox
$('#documentation_button_content').show();
//Hide edit link
$('#documentation_edit_content').hide();
//Hide the current content div
$('#documentation_content').hide();
});
最後に、テキストエリアを閉じ、元の値を削除し、新しい値を表示し、編集リンクを再度表示するための OK ボタン用の別のクリック イベント関数があります。
$('#OK_button').click(function() {
//remove original content
$('#appenddocumentationcontent').remove();
//hide the text area
$('#textarea_documentation_content').hide();
//hide the OK button
$('#documentation_button_content').hide();
//show again the content div
$('#documentation_content').show();
//Show again the edit link
$('#documentation_edit_content').show();
//retrieve the new text area value
var documentation_contentvaluex= $('textarea#textareainput_documentation_content').val();
//finally append this new value
$('#content').append('<div id="appenddocumentationcontent">'+documentation_contentvaluex + " <a title='Click to Edit' id='edit_content'>[Edit]</a></div>");
});
主な問題は、[OK] ボタンを押した後に [編集] リンクが機能しなくなることを除いて、ほぼ完全に機能します。
また、[OK] ボタンを押す前後に生成された HTML は非常に似ています。以下をご覧ください。
[OK] をクリックする前に:
<div id="content">
<div id="appenddocumentationcontent">The quick brown fox jumps over the lazy dog <a id="edit_content" title="Click to Edit">[Edit]</a>
</div>
</div>
[OK] をクリックした後 (新しいコンテンツが置き換えられます):
<div id="content" style="display: block;">
<div id="appenddocumentationcontent">This is the new content! <a id="edit_content" title="Click to Edit">[Edit]</a>
</div>
</div>
ご覧のとおり、セレクターはまったく変更されていません。クリック機能でこれらのセレクターを使用して、編集リンクを再度トリガーする必要があります。
$('#content #edit_content').click(function() {
何か不足していますか?ヒントをありがとうございました。