我有一个Jquery拖放列表,我想使用Jquery Ajax Post立即在MYSQL中更新。
因为我可以在列表(多个列表)之间拖动元素,所以我需要获取父ID(父类是列表类别ID - 拖动拖动的位置)
当我从一个类别/列表拖到另一个类别/列表时,我总是得到以前的ID ..
例如:
CAT 1 ------------ CAT 2
如果我要将某些东西从CAT1拖到CAT2 - ID将是CAT1而不是新的类别ID ......
我在下面添加了我的代码:
Jquery的:
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/jquery.ui.core.js"></script>
<script src="js/jquery.ui.widget.js"></script>
<script src="js/jquery.ui.mouse.js"></script>
<script src="js/jquery.ui.sortable.js"></script>
<script>
$(function() {
$( "#sortable1, #sortable2" ).sortable({
connectWith: ".connectedSortable"
}).disableSelection();
});
</script>
<script type="text/javascript">
$(document).ready(function(){
$(".mouseup").mouseleave(function(){
var sparent = $(this).parent().attr("id");
alert(sparent);
});
});
</script>
列出HTML:
<div class="demo">
<div class="box">
<ul id="sortable1" class="connectedSortable">
<li class="ui-state-default mouseup">Item 1</li>
<li class="ui-state-default mouseup">Item 2</li>
</ul>
</div>
<div class="box">
<ul id="sortable2" class="connectedSortable">
<li class="ui-state-highlight mouseup">Item 1</li>
<li class="ui-state-highlight mouseup">Item 2</li>
</ul>
</div>
</div>
任何帮助都将不胜感激。
提前谢谢!
答案 0 :(得分:2)
你想要的是: http://jqueryui.com/demos/draggable/#events
$( "#sortable1, #sortable2" ).sortable({
connectWith: ".connectedSortable",
stop: function(event, ui) { alert($(ui.item).parent().attr("id") }
}).disableSelection();
将代码置于停止回调中将允许您检查正确的ID。
答案 1 :(得分:0)
您需要处理的事件是received
。
$(".connectedSortable" ).on( "sortreceive", function(event, ui) {
alert(ui.item.parent()[0].id);
// also ui.sender will hold original list, from where element was taken
});
编辑:根据事实,如果您需要处理刚刚重新排序项目的情况,即您在同一列表中拖放,或者不是,您将使用received
或stop
事件。
只有在您拖到另一个列表时才会触发received
。
即使您将项目留在同一列表中,stop
也会触发。