【问题标题】:jquery resizable return falsejquery 可调整大小返回 false
【发布时间】:2023-03-09 13:16:02
【问题描述】:

我有一个具有属性 status="lock" 的对象。代表这个对象的 div 是可调整大小和可拖动的。

对于可拖动对象,如果我使用以下逻辑,则拖动被有效锁定 start: {... if status==lock then return false ...}

但是调整大小的相同逻辑不起作用

我可以设置 resizable("disabled") 但我想知道是否可以在开始或调整大小事件中停止调整大小

谢谢

【问题讨论】:

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


    【解决方案1】:

    您似乎无法从 start/resize 方法中取消调整大小事件。

    可以使用cancel 选项指定不适用可调整大小事件的选择器。使用此策略,您必须为每个可调整大小的 div 添加一个类,指示您是否希望调整其大小。

    例如,假设您有这样的数据集:

    var data = [
        { id: 'test1', status: 'lock' },
        { id: 'test2', status: 'unlock' },
        { id: 'test3', status: 'lock' }
    ];
    

    并且您想锁定那些状态为“锁定”的项目。假设您有这样的代码从这些数据创建 DOM 元素:

    var i, length = data.length;
    for(i = 0; i < length; i++) {
        $("body").append("<div id='" + data[i].id + "' class='resizable " + data[i].status + "'/>");
    }
    

    请注意,元素现在具有取决于其“状态”属性的类(锁定或解锁)。

    现在,您可以执行以下操作来取消对具有类 lock 的元素的大小调整:

    $(".resizable").resizable({ cancel: ".lock" });

    试试看:http://jsfiddle.net/andrewwhitaker/CDUce/

    【讨论】:

    • 感谢这是个好方法。我接受了这个作为答案,但是对于我的应用程序,我有一个 mousedown 事件,所以当对象标志设置为“锁定”时我调用 evt.stoppropogation,这样我就不必单独编写可调整大小和可拖动的代码。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多