問題のページは次のとおりです。
http://www.lukaspleva.com/MoneyThink/NationalAdmin.php
そのページに移動すると、各行の横にある赤い十字ボタンをクリックするだけで、システムからチャプターを削除できることがわかります。それを行うと、上部のチャプター カウンターが自動的に更新されます。
上部のセクションを介して新しいチャプターをミックスに追加すると、問題が発生します。新しいセクションが追加され、カウンターが更新されますが、削除ボタンは機能しなくなります。
コードで何が起こっているかを見ると、.load() 関数が追加の form="update_existing_chapters" WITHIN フォーム id="update_existing_chapters" を既にページに作成しているようです。
基本的に、div またはフォームを更新するだけでなく、その中に重複コピーが作成され、コードが壊れます。
関連するコードは次のとおりです。
$('form#update_existing_chapters')
.load('NationalAdmin.php form#update_existing_chapters');
現在の要素/セクションを更新するだけでなく、重複する要素/セクションを作成する理由は何ですか?
更新 #1
ボタンの削除イベントを保持するには、.on() を使用する必要があることに気付きました。次のコードを試してみましたが、実際には AJAX が完全に壊れてしまいます。理由はありますか?
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
$('#current_chapters').on('click', '.delete-chapter', function(){
jQuery.ajax({
type: 'post',
url: "http://www.lukaspleva.com/MoneyThink/CreateNewChapter.php",
dataType: 'text',
data: $('#create_new_chapter').serialize(),
success: function(msg){ alert(msg); $('#current_chapters').load('NationalAdmin.php #current_chapters'); }
});
return false;
});
});
</script>