当ui id值为" comp"时,我在禁用可排序函数方面遇到了一些问题。我不太确定出了什么问题,希望有人可以帮助我。
$(".sort").sortable({ // begin sortable
connectWith: ".sort",
receive: function(event, ui) { // begin receive
var id = $(ui.item).attr('id');
var status = this.id;
//alert(status);
if(status == "comp")
{
alert(status),
$('.sort').sortable("disable");
}
.always(function(){
window.location.reload();
});
}, // end receive
}) // end sortable
答案 0 :(得分:0)
由于可排序插件中的items选项,它比您想象的更简单。在您的情况下,它将(假设可排序元素被标识为li
):
$(".sort").sortable({
items: "li:not(#comp)"
});
<强> Fiddle 强>
修改强>
要停止对特定接收元素进行排序,您可以按如下方式更新代码。
<ul class="sort">
<li>elem1</li>
<li>elem2</li>
<li>elem4</li>
<li>elem5</li>
<li>elem6</li>
</ul>
<ul class="othersort">
<li id="comp">elem3</li>
</ul>
这是jQuery所需的代码。
$(".sort").sortable({
items: "li:not(#comp)"
});
$(".othersort").sortable({
connectWith: ".sort"
});
外部元素(#comp
)可以在现有列表中拖动到特定位置(如您所愿),但是当它在里面时,它就不能再被排序了。
答案 1 :(得分:0)
如果您尝试使用receive事件,那么除了一些语法错误之外,您并没有太远。 如果您不希望在接收事件中发生这种情况,您可以轻松地在these events的任何一个上更改相同的逻辑。我希望这会有所帮助,如果您有任何问题,请告诉我。
修改强>
也更新了代码:
HTML :提供您不希望在课堂上排序的<li>
。
<ul id="comp" class="sort">
<li class="unsortable">7</li>
</ul>
SCRIPT :然后你可以取消该课程。
$(".sort").sortable({
connectWith: ".sort"
});
$(".sort").sortable({
items: "ul:not(#comp)",
cancel: '.unsortable'
});