如何获取 jQuery 中可拖动元素的值?

How to get value of draggable element in jQuery?

我正在使用 jQuery 来实现拖放。我想获得可拖动控件的值。

Draggable Control:
------------------

<li>@Html.Label(temp.Label, new { id = "droppable", style = "color:black; width:auto", value = temp.Key })</li>

Function to show draggable control value:
-----------------------------------------

     function initDroppable($elements) 
     {
            $elements.droppable({
                drop: function (event, ui) {
                    var tempid = ui.draggable;
                    var value = tempid.attr("value");
                    alert(value);
                }
            });
      }

尝试了上面的代码,但输出是 "undefined"。我尝试了各种似乎不起作用的方法。感谢任何帮助,谢谢!

变化:

var tempid = ui.draggable;

至:

var tempid = $(ui.draggable);

然后通过attr方法访问该值:

var value = tempid.attr("value");

加上@Stuart,我们是在寻找input还是label?像这样:

var tempid = $(ui.draggable).find("input");
var value = tempid.val();

我怀疑被拖动的项目是这样的:

<li>
  <label id="droppable" style="color:black; width:auto" value="1">Temp</label>
</li>

如果您向我们展示结果 HTML。

将会很有帮助

此外,为什么不使用 data 属性?

<li>
  <label id="droppable" style="color:black; width:auto" data-temp-key="1">Temp</label>
</li>

有:

var value = ui.draggable.data("temp-key");