2011-01-05 72 views
1

我有一个对象具有属性status =“lock”。代表这个对象的div是可调整大小和可拖动的。jquery可调整大小返回false

可拖动,如果我使用下面的逻辑,然后拖动时,有效地锁定 开始:{...如果状态==锁定,则返回false ...}

但可调整大小相同的逻辑呢不行

我可以设置可调整大小(“禁用”),但不知道我是否可以停止启动中的调整或调整事件

谢谢

回答

0

它看起来并不像你可以取消从s调整事件大小挞/调整大小的方法。

可以使用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/

+0

由于这是个好办法。我接受这个答案,但对于我的应用程序,我有一个mousedown事件,所以我在对象标志设置为'Lock'时调用evt.stoppropogation,这样我就不必分别对可调整大小和可拖动的代码进行编码。 – Nilesh 2011-01-06 17:35:28