Я хочу составить список интересов для пользователей. Но в этот момент я застрял. Я хочу следующее: Два ряда интересов, интересы пользователей, а второй - интересы, которые могут быть интересны для пользователей.Как добавить функции к перетаскиваемым элементам с .replaceWith()
Теперь я хочу, чтобы пользователь мог щелкнуть мышью, чтобы его удалить, я использую эту функцию для этого (отлично работает);
// delete interest
$(".interest-item-delete").click(function() {
$(this).closest('.interests-item').replaceWith('<div class="interests-item-empty">Sleep<br>hier iets<br>wat je leuk<br>vindt</div>');
});
Тогда я хочу, чтобы пользователь, чтобы иметь возможность добавлять интересы пустых пространств в там текущем списке интересов (Div с классом «интересы-п-пустой»). Я использую это, которое также отлично работает;
// add interest
$('.interests-search-image').draggable({
revert: 'invalid',
});
$('.interests-item-empty').droppable({
accept: '.interests-search-image',
drop: function(ev, ui){
var title = $(ui.draggable).attr("data-title");
var imgSrc = $(ui.draggable).attr("data-imgSrc");
var categorie = $(ui.draggable).attr("data-cat");
$(ui.draggable).remove();
$(this).replaceWith('<div class="interests-item"><div class="interest-item-category">'+categorie+'</div><div class="interest-item-image"><img src="'+imgSrc+'"><div class="interest-item-delete">X</div></div><div class="interest-item-title">'+title+'</div></div>');
},
});
Но теперь у меня есть 2 проблемы; 1. Когда я удаляю элемент, я не могу ничего на нем на него (хотя он имеет правильный класс). 2. Когда я перетащил элемент в список интересов пользователя, я не могу их удалить.
Я предполагаю, что обе проблемы имеют такое же решение, с которым я просто не знаком. Надеюсь, ты поможешь мне.
По запросу: то, что я уже пробовал;
// delete interest
$(".interest-item-delete").click(function() {
$(this).closest('.interests-item').replaceWith('<div class="interests-item-empty">Sleep<br>hier iets<br>wat je leuk<br>vindt</div>');
$('.interests-item-empty').droppable({
accept: '.interests-search-image',
drop: function(ev, ui){
var title = $(ui.draggable).attr("data-title");
var imgSrc = $(ui.draggable).attr("data-imgSrc");
var categorie = $(ui.draggable).attr("data-cat");
$(ui.draggable).remove();
$(this).replaceWith('<div class="interests-item"><div class="interest-item-category">'+categorie+'</div><div class="interest-item-image"><img src="'+imgSrc+'"><div class="interest-item-delete">X</div></div><div class="interest-item-title">'+title+'</div></div>');
$(".interest-item-delete").click(function() {
$(this).closest('.interests-item').replaceWith('<div class="interests-item-empty">Sleep<br>hier iets<br>wat je leuk<br>vindt</div>');
$('.interests-item-empty').droppable({
accept: '.interests-search-image',
drop: function(ev, ui){
var title = $(ui.draggable).attr("data-title");
var imgSrc = $(ui.draggable).attr("data-imgSrc");
var categorie = $(ui.draggable).attr("data-cat");
$(ui.draggable).remove();
$(this).replaceWith('<div class="interests-item"><div class="interest-item-category">'+categorie+'</div><div class="interest-item-image"><img src="'+imgSrc+'"><div class="interest-item-delete">X</div></div><div class="interest-item-title">'+title+'</div></div>');
},
});
});
},
});
});
Как сказано, это сделает перетаскиваемый элемент удаляемым. Но когда я удаляю его и бросаю на него новый элемент, этот элемент не удаляется. Поэтому я думаю, что мне нужен цикл или что-то в этом роде.
Вам необходимо инициализировать droppable/draggable для новых добавленных элементов. Плагины не поддерживают делегирование –
Я пробовал это, но потом я делаю это, тогда я могу drag-> drop-> delete-> drag-> drop then error, Вероятно, мне нужно сделать цикл или что-то еще. Im still stuck ... – Augus
Почтовый код, который вы пробовали, отредактировав свой вопрос –