元素正在获得ui-resizable,但不是ui-resizable-handle

时间:2015-02-12 12:01:09

标签: jquery jquery-ui resizable jquery-ui-resizable jquery-resizable

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

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

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,但获取实际调整大小所需的句柄?

1 个答案:

答案 0 :(得分:1)

这很令人尴尬。显然,这是由于jQueryUI中的一个错误以及如何修复它的答案:

How do I destroy a jquery resizable without destroying child resizables?

简短总结:你在一个元素上调用destroy会删除那些元素的jQueryUI行为,并删除所有那个碰巧有一个元素的孩子的句柄。

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