我有以下代码,它是使用 JQuery.UI.Sortable 触发的,但它的行为异常。
我需要在这个函数中创建一个对象数组,并在每次调用时返回它。
function saveOrder(el) {
var slideOrder = new Array();
$(el).each(function() {
var slideId = $(this).attr("data-llp-slide-id"),
slideNo = $(this).attr("data-llp-slide-number"),
slideOb = {slideId,slideNo};
slideOrder.push(slideOb);
});
return slideOrder;
}
我得到的是返回多个对象/数组
根据@Rhumborl 的要求触发上述功能的代码
function init() {
$('.slide-list').sortable({
connectWith: ".connected-sortable",
stack: '.connected-sortable ul',
stop: function(e){
$(".slide-item").each(function(i, el){
var hash = $(el).index()+1;
$(el).attr('data-llp-slide-number',hash);
$(el).find('[data-llp-slide-number-display]').text(hash);
var newOrder = saveOrder(el);
console.debug(newOrder);
});
}
}).disableSelection();
}
最佳答案
在您提到的上下文中,它是 javascript 中的无效对象。你不能这样推
slideOb = {slideId,slideNo};
slideOrder.push(slideOb);
首先定义 slideOb 是一个有效的对象然后像下面这样推送
slideOb = {'id': slideId, 'no':slideNo};
slideOrder.push(slideOb);
现在 slideOrder 是一个本地数组,它总是包含一个数组对象。将其设为全局以将更多数组插入其中。
关于javascript - 创建一组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49050982/