使用以下命令禁用每个元素的可拖动:lt(3)Selector

时间:2015-11-03 22:19:30

标签: jquery jquery-ui jquery-selectors jquery-ui-draggable jquery-draggable

我有以下工作代码:

$stock.click(function () {
    $waste.append($stock.children('.container:lt(3)').card('upturn').droppable('disable').css( "left", function(i) {return ["0rem", "2rem", "4rem"][i];}) ); //3 divs
  });

此代码为3个div添加了几个类,但css除外。每个div使用以下内容获取不同的左侧属性:

.css( "left", function(i) {return ["0rem", "2rem", "4rem"][i];})

这一切都有效,但我也想禁用前2个div的可拖动选项。

我尝试过像(1)这样的事情:

.draggable('disable', function(i) {return ["true", "true", "false"][i];})

和(2)

.draggable(function(i) {return ['disable', 'disable', 'enable'][i];})

但是尝试(1)禁用所有3个div,而不仅仅是前2个,而try(2)根本不起作用。

我怎样才能做到这一点?

非常感谢

1 个答案:

答案 0 :(得分:1)

可拖动窗口小部件的已禁用属性使用选项方法设置,此属性需要布尔值,另一方面需要 css jQuery方法接受函数作为第二个参数,但禁用方法或禁用属性不受理。最好的方法是使用每个方法迭代每个项目:

.each(function(i){ $(this).draggable("option", "disabled", [false, true, true, false][i]) });

jsfiddle