如何将值数组传递给$.bq.pushState

how to pass an array of values to $.bbq.pushState

本文关键字:bq pushState 数组      更新时间:2023-09-26

我有一个url

http://www.example.com/

我想把一个数组传给$.bbq.pushState

var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";

我如何通过$.bbq.pushState 传递这个数组

请帮忙。。。。。。。。。。。。。。。。。。。。。。。。

try this js code..
obj ={}
var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";
for(i=0;i<myCars.length;i++){      
        obj.newcars.push(myCars[i]);               
}

我遇到了这个问题,并迅速使用这两个函数将信息以数组的形式添加和删除到片段中。

function AddItemToFragment(newItem) {
    var items = $.bbq.getState("itemArray");
    if (!items)
        items = new Array();
    items.push(newItem);
    $.bbq.pushState({itemArrray: items});
}
function RemoveItemFromFragment(itemToRemove) {
    var items = $.bbq.getState("itemArray");
    for (var i = items.length - 1; i >= 0; i--) {
        if (items[i] === itemToRemove)
            items.splice(i, 1);
    }
    $.bbq.pushState(items);
}

我对这些函数的工作方式不太满意,肯定有比创建数组对象和重写字符串更好的方法。我稍后会再看一眼,如果我发现什么,我会把它贴在这里。

这就是我在BBQ v1.2.1中所做的,它对我来说很好。

推送状态:

var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";
$.bbq.pushState({ 'myCars': myCars });

获取hashchange事件中的状态:

$(window).on('hashchange', function (e) {
   var myCars2 = e.getState('myCars');
}
var checkedBoxes = {};   // new object outside of function                                     
function toggleLayer(layer) { // layer is your key variable
    var val = $('#'+layer).prop('checked');  // val is the value variable
    checkedBoxes[layer] = val; // add pairs to the object
    $.each( checkedBoxes, function( key, value ) {  // foreach
      $.bbq.pushState(checkedBoxes);  // create a new parameter for each key value
    });
}