【问题标题】:Change Specific Element Resize Options in jQuery Resize更改 jQuery Resize 中的特定元素调整大小选项
【发布时间】:2015-05-31 13:01:24
【问题描述】:

我正在使用 jQueryUI 可调整大小的小部件,并且在页面上有一堆可调整大小的框。当文档加载时,我初始化小部件,如下所示:

$('.ui-draggable').resizable({
    minHeight: 10, // 10 is actually the default
    minWidth: 10, // 10 is actually the default
    resize: function() {
        showProperties(this);
    },
});

但是,在某些时候,我只希望其中一些元素更改调整大小选项。我想要做的是:

if (type == 'sometype')
{
    console.log($('#'+elementID).resizable('option', 'handles'));
    $('#'+elementID).resizable('option', 'handles', 'e,w');
    console.log($('#'+elementID).resizable('option', 'handles'));
}

这确实输出:

e,s,se
e,w

在控制台中,所以触发了事件,选择器是正确的,但是代码实际上并没有起作用:实际上,句柄保持不变,即e,s,se。

这是因为我使用了与原始 init 不同的选择器吗?如果是这样,我如何才能仅在原始可调整大小元素的子集上更改调整大小选项?如果不是,可能是什么问题?

【问题讨论】:

    标签: jquery-ui jquery-ui-resizable


    【解决方案1】:

    Handles 实际上是添加到应用resizable 的元素的div。似乎更改选项不会刷新这些句柄。也许有一种方法可以将更改应用于特定子集并刷新,但我不确定如何。 但是一种快速的解决方法是隐藏您不想要的句柄,而不是更改handle 选项。您必须将handle 选项设置为您需要的所有句柄,然后隐藏那些不需要的句柄。像这样删除se handle 例如:

    $('#'+elementID).find('.ui-resizable-se').hide();
    

    【讨论】:

    • 谢谢,成功了!原来这是一个开放的错误:bugs.jqueryui.com/ticket/3423 现在我保持开放状态,以防有人阅读并修复它,但如果没有类似情况发生,我会很快关闭它。
    猜你喜欢
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    • 2017-08-29
    相关资源
    最近更新 更多