Jquery 可调整大小的销毁删除句柄元素

Jquery resizable destroy remove handles elements

本文关键字:删除 句柄 元素 可调整 Jquery      更新时间:2023-09-26
handles: {
    'nw': '.nw',
    'ne': '.ne',
    'sw': '.sw',
    'se': '.se',
    'n': '.n',
    'e': '.e',
    's': '.s',
    'w': '.w'
},aspectRatio: true
//Button click change resizable aspectRatio to false
$().resizable("destroy").resizable({
    handles: {
        'nw': '.nw',
        'ne': '.ne',
        'sw': '.sw',
        'se': '.se',
        'n': '.n',
        'e': '.e',
        's': '.s',
        'w': '.w'
    },aspectRatio: false
});

我有一个按钮单击会将可调整大小的纵横比更改为假。

我的问题是当我使用可调整大小的销毁时,它会删除所有句柄元素。

有人知道如何在不删除任何元素的情况下更新可调整大小的吗?

我搜索,没有直接的方法可以做到这一点。要实现此功能,您可能需要编辑插件并在其中添加两行代码。您可以为 aspectRatio 创建一个全局变量,并告诉代码引用该变量并重新调整大小。

jquery-ui.js文件中搜索以下代码(使用版本1.11.2测试(

if (this._aspectRatio || event.shiftKey) {
    data = this._updateRatio(data, event);
}

并将其替换为

if(typeof window.globalAspectRatio != "undefined")
    this._aspectRatio = !!(window.globalAspectRatio);
if (this._aspectRatio || event.shiftKey) {
    data = this._updateRatio(data, event);
}

现在,如果window.globalAspectRatio已设置且不为空,则aspectRatio将为真,否则为假。你可以像这样使用它

$('button').click(function(){
    window.globalAspectRatio = !(window.globalAspectRatio);
})