Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 如何制作可拖动的项目';s样式是否使用自定义辅助对象或任何其他方法匹配目标?_Jquery Ui_Draggable_Jquery Ui Sortable_Helper - Fatal编程技术网

Jquery ui 如何制作可拖动的项目';s样式是否使用自定义辅助对象或任何其他方法匹配目标?

Jquery ui 如何制作可拖动的项目';s样式是否使用自定义辅助对象或任何其他方法匹配目标?,jquery-ui,draggable,jquery-ui-sortable,helper,Jquery Ui,Draggable,Jquery Ui Sortable,Helper,作为起点,我开始定制我的可拖动和可排序数据。在链接的示例中,我们在Dragable中有简单的文本。我用select标记替换了它 将select元素拖动到可排序列表中时,我只希望在将其移动到可排序列表时使用所选选项的值。为此,我使用了自定义帮助器,但不幸的是,一旦我删除它,它就会再次变成select元素 $("#draggable").draggable({ connectToSortable: "#sortable", opacity: 0.8, cursor: "move",

作为起点,我开始定制我的可拖动和可排序数据。在链接的示例中,我们在Dragable中有简单的文本。我用select标记替换了它

将select元素拖动到可排序列表中时,我只希望在将其移动到可排序列表时使用所选选项的值。为此,我使用了自定义帮助器,但不幸的是,一旦我删除它,它就会再次变成select元素

$("#draggable").draggable({
   connectToSortable: "#sortable",
   opacity: 0.8,
   cursor: "move",
   helper: function () {
       return $("<div>" + $(this).text() + "</div>");
   },
   distance: 20
});

这是一个有点复杂的解决方案,但下面是:

首先,我修改了draggable中的自定义助手函数。我找到了我要查找的类,只克隆了第一个实例(li),但添加了所有列表框的文本。这是由于fcbkcomplete的设计。无论如何,现在我们只剩下一个列表项和我需要的文本。我将ui状态默认类添加到克隆中,这里就完成了

                $("#draggable").draggable({
                distance: 10,
                cursor: "move",
                helper: function (e, ui) {
                    var newListItem = $(this).find('.bit-box').first().clone().removeClass().addClass("ui-state-default");
                    var fullCommand = "";
                    $(this).find('.bit-box').each(function( index ) {
                        fullCommand += $(this).text() + " ";
                    });

                    newListItem.text(fullCommand);
                    return (newListItem);
                },
                revert : true
                });
在droppable中,我仍然处理drop事件,但这次使用ui.helper.clone而不是ui.draggable

                $("#container").droppable({
                accept: '.product',
                drop: function (event, ui) {
                    var x = ui.helper.clone();
                    x.removeClass().attr('style', '');
                    x.addClass("ui-state-default");
                    x.appendTo('#container');
                    ui.helper.remove();
                }
            });
我仍然需要修复wrt css中的一些错误,但这与预期的效果完全一样:)

                $("#container").droppable({
                accept: '.product',
                drop: function (event, ui) {
                    var x = ui.helper.clone();
                    x.removeClass().attr('style', '');
                    x.addClass("ui-state-default");
                    x.appendTo('#container');
                    ui.helper.remove();
                }
            });