我有一个元素列表,我试图在加载它们之后添加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,但不获取实际调整大小所需的句柄?
答案 0 :(得分:1)
这很令人尴尬。显然,这是由于jQueryUI中的一个错误以及如何修复它的答案:
How do I destroy a jquery resizable without destroying child resizables?
简短总结:你在一个元素上调用destroy会删除那些元素的jQueryUI行为,并删除所有那个碰巧有一个元素的孩子的句柄。
在使用难以搜索的jQueryUI进行编码时,我不得不停止查找库错误。