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

时间:2012-03-01 08:57:04

标签: javascript jquery jquery-bbq

我有一个网址

http://www.example.com/

我希望将数组传递给$.bbq.pushState

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

如何通过$.bbq.pushState

传递此数组

请帮助........................

4 个答案:

答案 0 :(得分:0)

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]);               
}

答案 1 :(得分:0)

我遇到过这个问题并快速使用这两个函数作为以数组形式向片段添加和删除信息的方法。

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);
}

我对这些函数的工作方式不太满意,必须有一个比创建数组对象和重写字符串更好的方法。我稍后再看看这个,如果我来的话,我会在这里发布。

答案 2 :(得分:0)

这就是我在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');
}

答案 3 :(得分:0)

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
    });
}
相关问题