0

我有一个元素列表,我试图在加载它们之后添加 jQuery UI 可调整大小功能,并且它们正在获取类ui-resizable ,但是没有添加具有类ui-resizable-handle的 div 。

首先我开始(在你问之前,是的,我已经剥离了一些示例中不需要的代码)......

function setElementsAsResizable(elements, isResizable) {
    elements.each(function () {
        var element = $(this);
        if (element.is(':data(ui-resizable)'))
            element.resizable("destroy");
        if (isResizable)
            element.addClass("resizable");
        }
        else {
            if (element.hasClass("resizable"))
                element.removeClass("resizable");
        }
    });
}

这是所以我从一个干净的石板开始,以防万一元素不再可调整大小。在此之后我创建元素。

function createResizableElements(row) {
    var element = row.children(".element.resizable");
    element.resizable({
        handles: 'e',
        containment: 'parent',
        create: function (event, ui) {
            $(this).parent().on('resize', function (e) {
                e.stopPropagation();
            });
        },
        start: function (event, ui) {...},
        resize: function (event, ui) {...},
        stop: function (event, ui) {...}
    });

所以我所有的元素现在都被赋予了ui-resizable,但并不是所有的元素都没有收到 div ui-resizable-handle,这使得整个东西无法使用。这些元素也是可排序的(有效),当我拖放它们时,它们会经历相同的过程,但现在已被赋予ui-resizable-handle

简而言之,有谁知道如何将元素设置为 ui-resizable,但知道实际调整大小所需的句柄?

4

1 回答 1

1

好吧,这很尴尬。显然,这是由于 jQueryUI 中的错误以及此处存在的有关如何修复的答案:

如何在不破坏子可调整大小的情况下销毁可调整大小的 jquery?

简短的总结:您在一个元素上调用destroy,它将删除该元素的jQueryUI行为并删除该元素的所有恰好有一个子元素的句柄。

在使用难以搜索的 jQueryUI 进行编码时,我必须停止查找库错误。

于 2015-02-13T15:12:55.160 回答