Как предложил NickTFried, Linked List - один из способов. Другой - иметь таблицу, достаточно большую, чтобы удерживать максимальное количество элементов, которые вы когда-либо имели, и управлять ими (какие из них действительны или нет, сколько противников в настоящее время в списке).
как изменение размера, вам придется использовать указатель вместо таблицы, и вы можете перераспределять, копировать и т. д. ... определенно не то, что вы хотите сделать в игре.
Если производительность - это проблема (и я предполагаю, что это так), правильно распределенная таблица - это то, что я буду использовать.
Сделайте еще один вызов ajax в функции успеха:
$(document).ready(function(){
$.ajax({
url: "recursive.php",
method:"POST",
dataType: "json",
success: function(data)
{
$(document).on('click', '.btn_supp', function(){
if(confirm("do you want to delete this file?")){
$.ajax({
url: "delete.php",
method:"POST",
dataType: "json",
success: function(data)
{
alert("deleted");
});
}
});
}
});
$('#treeview').treeview({
data: data,
selectedBackColor: 'rgb(211,211,211)',
selectedColor: '#4A4A49',
enableLinks:true,
collapsedall: true
});
}
});`
Самый простой способ отображения подтверждения, когда AJAX добавляет в DOM, - это связать делегированный слушатель события в функции DOMReady вашего представления.
Так как jQuery связывает обработчики событий во время состояния DOMReady
, он не будет связывать дополнительные элементы в функции ajax.success
, если ответ не включает в себя javascript и dataType
является «script», или вы не анализируете [ 116] переменная из функции успеха и событие добавляется вручную.
Предполагается, что элемент с id="treeview"
уже существует.
<script type="text/javascript">
jQuery(function($) {
$(document).on('click', 'a[href^="delete.php"]', function(e) {
return window.confirm('Are you sure you want to delete this file?');
});
$.ajax({
url: "recursive.php",
method:"POST",
dataType: "json",
success: function(data) {
$('#treeview').treeview({
data: data,
selectedBackColor: 'rgb(211,211,211)',
selectedColor: '#4A4A49',
enableLinks:true,
collapsedall: true
});
}
});
});
</script>
<div id="treeview"></div>
Это работает, сообщая jQuery отслеживать все щелчки внутри элемента #treeview
, для запускающего элемента <a href="delete.php">
. В частности, href^="delete.php"
означает элемент <a>
, с href
, который начинается с delete.php
. Если он найден, выполняется функция обратного вызова и отображается диалоговое окно подтверждения.
Если вы добавите атрибут class
к элементу привязки recursive.php
, вы можете заменить a[href^="delete.php"]
на a.classname
.
$arr = array(
'text' => '<img src="img/pdf.png"><a class="delete" href="delete.php?doc='.$sub_data["code"].'" target="_blank">'.$sub_data["n_doc"].'</a>'
);
Тогда в вашем javascript
$(document).on('click', 'a.delete', function(e) {
if (!window.confirm('Are you sure you want to delete this file?')) {
e.preventDefault();
}
});