Jquery (Drag and Drop)
Такая проблема. Делаю перетаскивание элементов списка и сохраняю в базе. Проблема только в том, что после первого перетаскивания, второй раз это можно сделать только после перезагрузки страницы. Он конечно выполняется, если не использовать setTimeout, но он мне нужен.
<script type="text/javascript">
$(function() {
$(".dragdiv li").draggable({
appendTo: "body",
helper: "clone",
cursor: "move",
revert: "invalid"
});
initDroppable($(".dragdiv li"));
function initDroppable($elements) {
$elements.droppable({
activeClass: "ui-state-default",
hoverClass: "ui-drop-hover",
accept: ":not(.ui-sortable-helper)",
over: function(event, ui) {
var $this = $(this);
},
drop: function(event, ui) {
var $this = $(this);
var li1 = $('<li>' + ui.draggable.text() + '</li>')
var linew1 = $(this).after(li1);
var li2 = $('<li>' + $(this).text() + '</li>')
var linew2 = $(ui.draggable).after(li2);
$(ui.draggable).remove();
$(this).remove();
initDroppable($(".dragdiv li"));
$(".dragdiv li").draggable({
appendTo: "body",
helper: "clone",
cursor: "move",
revert: "invalid"
});
$.ajax({
type: "POST",
url: "inc/ajax/0.php",
data: {'id' : $(ui.draggable).attr('id1'),'id2':$(this).attr('id1'),'id3' : $(ui.draggable).attr('id3'),'id4':$(this).attr('id3'),'id0':$(this).attr('id0')},
cache: false,
success: function(data){
setTimeout(function(){ $('.reload0005').load(' .reload0005'); },50);
$("#wdh_result_form2").html(data);
}
});
}
});
}
});
</script>
<div class='reload0005'>
<div id="maindiv">
<div class="dragdiv">
<ul id="allItems" runat="server">
<?
$sql_query = "SELECT * FROM aaa ORDER BY tip limit 23";
$resultset = mysql_query($sql_query);
while( $row = mysql_fetch_assoc($resultset)) {
?>
<li class="note<? echo $row[tip]?>" id1="<?php echo $row['id']; ?>" id3="<?php echo $row['player']; ?>" id0="<?php echo $rlen['clubid']; ?>"><?php echo $row['short']; ?></li>
<?php } ?>
</ul>
</div></div></div>