0

连接排序的项目属性有问题。我想要做的是禁用使用 CSS 选择器传递的项目拖动(使用 :not 选项):

.sortable({
    items: ":not(.disabledItem)"
});

但是,每当我:

  1. 从项目中删除“禁用项目”类
  2. 拖动它(不拖动一切正常)
  3. 重新应用“disabledItem”类

它不会再次被禁用,即使它附加了“disabledItem”类。

JsFiddle 示例:http: //jsfiddle.net/LZsT6/

4

1 回答 1

0

嗨,你去工作演示:http: //jsfiddle.net/tBKP6/1/

随意使用 jsfiddle,而不是 :not I have used cancel您可以在文档中阅读更多详细信息。http://jqueryui.com/demos/sortable/items.html && 别忘了接受答案 :)

通过将 jQuery 选择器传递给 items 选项来指定哪些项目可以排序。此选项中排除的项目不可排序,也不是可排序项目的有效目标。

要仅防止对某些项目进行排序,请将 jQuery 选择器传递给取消选项。已取消的项目对其他人来说仍然是有效的排序目标。

jQuery代码

$('.list')
    .sortable({
        connectWith: ".list",
        //items: ":not(.disabledItem)"
        cancel: ".disabledItem"
    });

$('#enableItem').click(function(){
    $("#itemToDisable").removeClass('disabledItem');        
    //$("li[value='it']").removeClass('disabledItem');
});

$('#disableItem').click(function(){
    $("#itemToDisable").addClass('disabledItem');        
    //$("li[value='it']").removeClass('disabledItem');
});

​</p>

于 2012-04-06T11:01:26.797 回答