创建一个对象数组

时间:2018-03-01 13:42:39

标签: javascript jquery arrays jquery-ui

我有以下使用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();
}

1 个答案:

答案 0 :(得分:1)

在您提到的上下文中,它是javascript中的无效对象。你不能像这样推动

class TabBarController: UITabBarController {

    var image: UIImageView?

    override func viewDidLoad() {
        super.viewDidLoad()
        image = UIImageView(image: createImage(color: UIColor(red:0.18, green:0.66, blue:0.24, alpha:1.0), size: tabBarItemSize, lineHeight: 4))
        tabBar.addSubview(image!)
    }

    func createImage(color: UIColor, size: CGSize, lineHeight: CGFloat) -> UIImage {
        let rect: CGRect = CGRect(x: 0, y: size.height - lineHeight, width: size.width, height: lineHeight )
        UIGraphicsBeginImageContextWithOptions(size, false, 0)
        color.setFill()
        UIRectFill(rect)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }
}

首先定义slideOb是一个有效的对象然后按下面推送

slideOb = {slideId,slideNo};
slideOrder.push(slideOb);

现在slideOrder是一个本地数组,它总是保存一个数组对象。使其成为全球性的,将更多数组推入其中。