我有一个元素列表,我试图在加载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进行编码时,我必须停止发现难以搜索的库错误。