查看以下 jsFiddle:
我使用可排序的 div,其中包含项目。这些项目是可排序的,并使用 jQuery UI Sortable 插件。当我实例化document.ready
函数中的项目时,一切都按预期工作。
但是,一旦您单击禁用并再次启用按钮,该sortable
插件就不再起作用了。
当您只使用按钮并sort(true)
从document.ready
.
为什么 jQuery UI sortable 在 DOM 层次结构已经完全构建并触发 ready 函数时可以工作,但在此之后调用时不起作用?
HTML:
<div id="sort">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
</div>
<button id="b1">Enable</button>
<button id="b2">Disable</button>
CSS:
.item {
display:block;
background-color: Yellow;
width: 100px;
margin: 5px
}
.placeholder {
background-color: Green;
width: 100px;
}
Javascript:
$(document).ready(function() {
sort(true); //Remove this line to see if the enable button works from the start. (which it doesn't)
//These lines are needed for jsFiddle to get buttons to respond to clicks. See http://stackoverflow.com/questions/5431351/simple-example-doesnt-work-on-jsfiddle
$("#b1").click(function() {
sort(true);
});
$("#b2").click(function() {
sort(false);
});
});
function sort(enable) {
if(enable) {
$("#sort").sortable({
placeholder: "placeholder",
forcePlaceholderSize: true
});
} else {
$("#sort").sortable({ disabled: true });
}
}