数据以未定义的形式返回

时间:2018-04-27 13:46:21

标签: javascript jquery-ui-sortable children

我有这种可排序的功能,我希望能够将用户添加到组中。当我将用户从用户表拖到组表时,我希望能够检查组表中是否已存在该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

0 个答案:

没有答案