尝试将可排序元素设置为禁用
Trying to set sortable element to be disabled
我正在使用 jQuery 可排序列表项。但是,我已将某些 li 元素设置为禁用 class 名称,以禁用该特定项目的排序。
我还将 class 添加到 jquery 代码中以禁用,但它仍然允许重新排列这些项目
我查看了各种消息来源,他们说只需在选择器上使用启用/禁用,但似乎都不起作用
我已经搜索过,也看过这里 http://api.jqueryui.com/sortable/#method-option
<script>
$( function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
$(".notsortable").sortable("disable");
} );
</script>
<ul id="sortable">
<li class="ui-state-default notsortable">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #1</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #2</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #3</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #4</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #5</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #6</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #7</li>
</ul>
不应允许移动列表项,但事实并非如此
尝试这样做:
$(function() {
$("#sortable").sortable({
cancel: ".ui-state-disabled",
items: "li:not(.ui-state-disabled)"
})
});
.ui-state-disabled {
opacity: 1 !important;
pointer-events: auto !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" />
<ul id="sortable">
<li class="ui-state-disabled">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span><a href="https://www.google.com/">Test</a>
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #2
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #3
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #4
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #5
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #6
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #7
</li>
</ul>
我正在使用 jQuery 可排序列表项。但是,我已将某些 li 元素设置为禁用 class 名称,以禁用该特定项目的排序。 我还将 class 添加到 jquery 代码中以禁用,但它仍然允许重新排列这些项目
我查看了各种消息来源,他们说只需在选择器上使用启用/禁用,但似乎都不起作用 我已经搜索过,也看过这里 http://api.jqueryui.com/sortable/#method-option
<script>
$( function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
$(".notsortable").sortable("disable");
} );
</script>
<ul id="sortable">
<li class="ui-state-default notsortable">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #1</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #2</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #3</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #4</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #5</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #6</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #7</li>
</ul>
不应允许移动列表项,但事实并非如此
尝试这样做:
$(function() {
$("#sortable").sortable({
cancel: ".ui-state-disabled",
items: "li:not(.ui-state-disabled)"
})
});
.ui-state-disabled {
opacity: 1 !important;
pointer-events: auto !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" />
<ul id="sortable">
<li class="ui-state-disabled">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span><a href="https://www.google.com/">Test</a>
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #2
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #3
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #4
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #5
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #6
</li>
<li class="ui-state-default">
<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Order #7
</li>
</ul>