从jquery ui发生两次drop事件

时间:2012-01-20 14:29:41

标签: jquery-ui

我正在使用jquery ui 1.7.2以及jquery 1.3.2

以下脚本导致drop事件被触发两次..我尝试了很多时间但却无法找出原因?

修改此代码的任何建议

$("document").ready(function () {

    $(".draggable").draggable({
        revert: "invalid",
        helper: "clone",
        connectToSortable: ".column"
    });

    $(".column").droppable({
        accept: ".draggable",
        drop: function (event, ui) {
            debugger;
            var ordinalNo = 1;
            $(".column .contentObject").each(function () {
                ordinalNo = ordinalNo + 1;
            });

            var objectId = guidGenerator() + '_' + ordinalNo;
            var objectType;
            var contentObjContent = "<div id=\"" + objectId + "\" ><h2>[<span class=\"ordinal\"></span>] ";

            if (event.srcElement.id === "tableobj") {
                objectType = tableSource;
            }
            else if (event.srcElement.id === "chartobj") {
                objectType = chartSource;
            }
            else if (event.srcElement.id === "textobj") {
                objectType = textSource;
            }

            $.ajax({
                url: "/ContentBuilder/ContentObject",
                data: {
                    viewObjectId: objectId,
                    contentObjectId: null,
                    contentObjectTypeId: objectType,
                    contentObjSourceId: null,
                    ordinal: ordinalNo
                },
                type: "POST",
                success: function (data) {
                    contentObjContent = data;
                }
            });
        }
    });
    $(".column").sortable({
        connectWith: '.column',
        handle: 'h2',
        cursor: 'move',
        placeholder: 'placeholder',
        forcePlaceholderSize: true,
        opacity: 0.4,
        update: function (event, ui) {
            changeOrdinal();
            if (event.srcElement.id.length <= 0) {
                updateObjectOrdinals();
            }
        }
    }).disableSelection();

    $(".tablecolumn").sortable({
        connectWith: '.tablecolumn',
        handle: 'h2',
        cursor: 'move',
        placeholder: 'placeholder',
        forcePlaceholderSize: true,
        opacity: 0.4,
        update: function (event, ui) {
            changeColumnOrdinal();
        }
    }).disableSelection();
});

1 个答案:

答案 0 :(得分:1)

因为您在同一个选择器$(“。column”)上使用了droppable AND sortable。我认为两者都会引发下降。