【问题标题】:Jquery list drag dropjquery列表拖拽
【发布时间】:2012-08-08 23:02:57
【问题描述】:

我有一个 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>

任何帮助将不胜感激。

提前谢谢你!

【问题讨论】:

  • 贴出你实际使用的拖放代码,是jquery++还是jquery.ui?
  • 已更新 - 希望这就是您所要求的

标签: javascript jquery


【解决方案1】:

你想要的在这里: http://jqueryui.com/demos/draggable/#events

$( "#sortable1, #sortable2" ).sortable({
    connectWith: ".connectedSortable",
    stop: function(event, ui) { alert($(ui.item).parent().attr("id") }
}).disableSelection();

将您的代码放在停止回调中将允许您检查正确的 ID。

【讨论】:

  • 谢谢您-您忘记关闭警报但不用担心我自己发现了该错误-谢谢您的帮助:)
【解决方案2】:

您需要处理的事件是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
 });

已编辑:取决于您是否需要处理刚刚重新排序项目时的情况,即您在同一个列表中拖放,或者您将使用receivedstop 事件。 received 只会在您拖动到另一个列表时触发。 即使您将项目留在同一个列表中,stop 也会触发。

【讨论】:

  • 是我要添加的确切代码还是选择器更改为我目前在可拖动对象上的 mouseup 类?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多