新しいメモを作成するコード例を修正しました
これは、submit イベントを、load イベントから離れたコールバック関数内で新しく追加されたフォームにもアタッチします。
何らかの理由で、他の例ではうまくいかなかったので、これは一歩前進です。
このようにすることの欠点についてはまだわかりません!! この問題に関するコメントをお待ちしています。例をご覧になりたい場合は、
目的とコメント: newnote 関数は 2 つの引数を取ります
-: index = ページに既に存在するメモの数
-: tbnoteid = データベースからのメモ ID
インデックスは、表示されたメッセージのカウンターのようにも機能するはずです。
たとえば、カウンターが 10 を超えた場合、最後のメッセージが最初に 1 つ (タイムスタンプが最も古いメッセージ) の基準のメッセージをページとデータベースから削除することになっています (ロジックは後で追加されます)。
フォームが実行できる唯一のアクションは、データベースからメッセージを削除し、ページからそれ自体 (コンテナー div) を削除することです。静的な目的のために、最初にフェードアウトします。
関数は、メッセージ自体のように、より多くの引数を取ることができます。ユーザーがページに入ると、データベースからメッセージがある場合はそれをプルする別の関数から newnote 関数を呼び出す必要があります。
この例のように、新しいメモを生成するリンクも別のフォームからのアクションに置き換えられます
$(document).ready(function(){
$('a[name=modal]').click(function(e) { //the selector is for testing purpose
//Cancel the link behavior
e.preventDefault();
var $aantal = $("div.pane").size()
newnote($number+1,1); // second argument is supposed too come from the database
});
function newnote(index,tbnoteid) {
$("div.wrapper:last").after('<div class="wrapper"></div>');
$('.wrapper:last').load('tbnote.html .pane', function() {
$(".pane:last").prepend("testmessage"); //testpurpose
$('.pane:last #frmnoteid').val(tbnoteid);
$(this,".frm" ).attr('id' , index);
var $id = $(this).attr('id'); "); //testpurpose
$('.frm:last').submit(function(){
$.post("tbnotes.php",{
noteid: $("#frmnoteid").val(),
actie: "verwijder",
tijd: timestamp}, function(xml) {
addMessages(xml);
});
alert("Hello mijn id = " + $id );"); //testpurpose
$(this).parents(".pane").animate({ opacity: 'hide' }, "slow");
$(this).parents(".wrapper").remove();
return false;
});
});
}