bes,
Извините, просто на форум я обращаюсь в крайнем случае, предварительно перебрав все возможные варианты, насколько хватает знаний, и под конец в голове полная каша, что и приводит к таким не совсем понятным темам. Мне казалось проблема ясна)
Специально для темы, сделал демо версию проблемы)
Код:
$(function() {
$(".del").click(function(){
if (confirm('Вы уверены, что хотите удалить?')) {
$("#l"+$(this).attr("data-id")).hide();
} else {}
});
$("#new").click(function(){
$.ajax({
type: "POST",
data: "test="+$("#col").val(),
url: "http://"+window.location.hostname+"/include/ajax/test.php",
success: function(test){
$("#col").val(test.id);
$(".test").append("<li id='l"+test.id+"' data-id='"+test.id+"'>"+test.id+" <input type='submit' value='del' class='del' data-id="+test.id+" id='del"+test.id+"' /></li>");
}
});
});
});
<input type="submit" value="new" id="new" />
<ul class="test">
<li id="l1" data-id="1">1 <input type="submit" value="del" class="del" data-id="1" id="del1" /></li>
<li id="l2" data-id="2">2 <input type="submit" value="del" class="del" data-id="2" id="del2" /></li>
</ul>
<input type="text" value="2" id="col" />
Файл ajax/test.php прибавляет 1 и возвращает id
<? header("Content-type:application/json;"); $id = (int)$_POST['test']+1;?>
{ "id": "<?=$id;?>" }
Проблема в том, что при таком коде, новые <li> не удаляются.
Что бы они удалялись, нужно прописать вот так:
$(function() {
$(".del").click(function(){
if (confirm('Вы уверены, что хотите удалить?')) {
$("#l"+$(this).attr("data-id")).hide();
} else {}
});
$("#new").click(function(){
$.ajax({
type: "POST",
data: "test="+$("#col").val(),
url: "http://"+window.location.hostname+"/include/ajax/test.php",
success: function(test){
$("#col").val(test.id);
$(".test").append("<li id='l"+test.id+"' data-id='"+test.id+"'>"+test.id+" <input type='submit' value='del' class='del' data-id="+test.id+" id='del"+test.id+"' /></li>");
$(".del").click(function(){
if (confirm('Вы уверены, что хотите удалить?')) {
$("#l"+$(this).attr("data-id")).hide();
} else {}
});
}
});
});
});
Но вот тут у меня и возникает та самая проблема. Я её вижу так: каждый раз когда я добавляю новый <li> этот код так же прописывается каждый раз.
А потом соответственно и вызывается 5 раз вместо одного.