我有一个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
});
}