我正在使用JqueryUI Draggable和Sortable的组合来从网格中选择图像,并将它们拖入可重新排序的可排序容器中。问题是当我加载更多的图像时,我需要重新初始化可拖动以包含添加的项目。jQueryUI重新初始化可拖动后可重复排序的元素
https://jsfiddle.net/Lpj8jthk/2/
初始化将
function initDragAndDrop(){
$(".ui-draggable").draggable({
opacity: 1.0,
helper: 'clone',
revert: 'invalid',
connectToSortable: '#drop-area'
});
$("#drop-area").sortable({
axis:"x",
connectWith: '.connectedSortable'
});
}
$(document).ready(function() {
load_draggable_images(track_page); //load content
initDragAndDrop();
});
负载更多按钮handeler
$("#load-more-draggable-images").click(function (e) { //user clicks on button
track_page++; //page number increment everytime user clicks load button
load_draggable_images(track_page); //load content
initDragAndDrop();
});
function load_draggable_images(track_page){
// $('.animation_image').show(); //show loading image
$.post('includes/load-images.php', {'page': track_page}, function(data){
if(data.trim().length == 0){
//display text and disable load button if nothing to load
$("#load_more_button").text("No more records!").prop("disabled", true);
}
var parsed = JSON.parse(data);
// $("#images-container").empty();
$.each(parsed, function(k,v){
var name = v['filename'].split(".").shift()
var htmlString = "<div class='tile' data-timestamp='" + v['time']+ "'>" +
"<div>"+
"<img class='ui-draggable' src='" + v['thumbnail'] + "'> "+
"<p>" + name + "</p>"+
"</div> <br> "+
"</div> ";
$("#images-container").append(htmlString);
});
initDragAndDrop();
//scroll page to button element
// $("html, body").animate({scrollTop: $("#load_more_button").offset().top}, 800);
//hide loading image
// $('.animation_image').hide(); //hide loading image once data is received
});
}
https://jsfiddle.net/Lpj8jthk/2/
这里的东西没有加起来。您是否通过将其拖动到可排序或通过单击按钮来添加更多项目?后者需要“刷新”我想。你能提供一个小问题的例子吗? – Twisty
@Twisty'jquery.post()'('$ .post()')发送一个AJAX post请求,结果被附加到容器。 – Lonergan6275
好吧,添加项目之后,你想'刷新'像这样:http://api.jqueryui.com/sortable/#method-refresh – Twisty