元素正在获取可调整大小的ui句柄,但未获取可调整尺寸的ui句柄



我有一个元素列表,我试图在加载jQuery ui的可调整大小功能后将其添加到这些元素中,他们正在获得类ui可调整大小,但没有添加具有类ui可调整大小句柄的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可调整大小,但并不是所有元素都没有收到divui可调整大小的句柄这会使整个元素无法使用。元素也是可排序的(这很有效),当我拖放它们时,它们会经过相同的过程,但现在已经被赋予了ui可调整大小的句柄

简而言之,有人知道如何将元素设置为ui可调整大小,但不能获得实际调整大小所需的句柄吗?

这太尴尬了。显然,这是由于jQueryUI中的一个错误,以及如何修复这里存在的问题的答案:

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

简短的总结:你对一个元素调用destroy,它将删除该元素的jQueryUI行为,并删除该元素所有碰巧有一个子元素的句柄。

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

最新更新