2012-06-22 33 views
1

我以为我会把工作解决方案放在这里给其他代码示例感兴趣的人。如何添加一个id变量到一个jQuery可拖动项目?

每个可拖动项目都将其id设置为项目ID。这是一个可拖动项目的源代码视图:

<div id="item"> 
    <ul> 
     <li class="list_none" id="15"> 
       Black phone 
     </li> 
    </ul> 
</div> 

这里的jQuery脚本使得它拖动。“我已经更新,以反映dmck输入:

$("#item li").each(function(index, value) { 
    $this = $(value); 
    var drag_id = $this.attr("id"); 
    $this.draggable({ 
      appendTo: "body", 
      helper: "clone" 
    }).data("drag_id", drag_id) 
}); 

薪火drag_id值可放开是一个问题,但现在的工作。

$("#group ul").droppable({ 
    activeClass: "ui-state-default", 
    hoverClass: "ui-state-hover", 
    accept: ":not(.ui-sortable-helper)", 
    drop: function(event, ui) { 
     // alert(ui.draggable.data("drag_id")); // left this alert in for other tinkerers 
     $('input[name=user_id]').val(ui.draggable.data("drag_id")); 
     $(this).closest('form').submit(); 
     return false; 
     $("<li></li>").text(ui.draggable.text()).appendTo(this); 
    } 

谢谢。

+0

BTW:HTML规范要求ID属性不以数字开头。 –

+0

@Diodeus,请参阅http://www.w3.org/TR/html5/global-attributes.html#the-id-attribute。我通常不会根据ID来设计项目,所以我应该没问题。 – Jay

回答

4

使用jQuery的每一个的每个元素绑定:

$("#item li").each(function(index, value) { 

    $this = $(value); 

    var itemid = $this.attr("id"); 

    $this.draggable({ 
      appendTo: "body", 
      helper: "clone" 
    }).data("itemid", itemid) 
}); 
+0

+1获得有价值的帮助。我无法将变量从draggable传递到droppable。将更新问题。 – Jay

相关问题