我有这种可排序的功能,我希望能够将用户添加到组中。当我将用户从用户表拖到组表时,我希望能够检查组表中是否已存在该ID,如果存在,我想用错误消息进行响应。但是,当我尝试循环播放并从组表中获取ID时,我得到一个未定义的值。
HTML代码:
<div class="userContainer">
<div id="userDiv">
<ul class="userList dragable" ></ul>
</div>
<div id="groupDiv">
<select id="DropDown"></select>
<input id="btnGetGroups" class="btn btn-success" type="button"
value="Hämta grupper" />
<select id="DropDownGroups"></select>
<input id="btnShowGroups" class="btn btn-success" type="button"
value="Visa grupp" />
<ul class="usersOfGroupList dragable"></ul>
</div>
</div>
以下是使用当前用户填写group-table的代码:
$('#btnShowGroups').click(function () {
var e = document.getElementById("DropDownGroups");
groupId = e.options[e.selectedIndex].value;
$('.usersOfGroupList').empty();
$.getJSON("mylinkgoeshere" + groupId + "", function (result) {
$.each(result, function (i, value) {
$('.usersOfGroupList').append($("<li id='userElement' data-userId='' ></li>").data('userId', value.Id).html(value.FirstName + " " + value.LastName));
$(".usersOfGroupList").addClass("addBorder");
});
});
});
正如您所看到的,我正在使用&#39; userId&#39;作为数据属性的关键。
可排序代码如下所示:
$(".dragable").sortable({
connectWith: ".usersOfGroupList",
remove: function (e, ui) {
var $this = $(this);
var childs = $this.find('li');
if (childs.length === 0) {
$this.text("Nothing");
}
},
receive: function (e, ui) {
var array = [];
var $this = $(this);
var children = $this.find('li');
for (var i = 0; i < children.length; i++) {
var specificId = children[i].item.data('userId');
array.push(specificId);
console.log(array);
};
在receive-property中,我试图通过循环所有li元素来获取当前的userID,然后将ID推送到一个数组中,但它只会返回undefined。我已经调试了li元素,但它给了我这个错误信息:
未捕获的TypeError:无法读取属性&#39;数据&#39;未定义的 在HTMLUListElement.receive