как передать массив значений в $ .bbq.pushState - PullRequest
0 голосов
/ 01 марта 2012

У меня есть URL

http://www.example.com/

, и я хочу передать массив в $.bbq.pushState

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

как я могу передать этот массив на $.bbq.pushState

пожалуйста, помогите ........................

Ответы [ 4 ]

0 голосов
/ 26 октября 2014
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
    });
}
0 голосов
/ 19 марта 2012

Я столкнулся с этой проблемой и быстро использовал две функции как способ добавления и удаления информации к фрагменту в виде массива.

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

Я не совсем доволен тем, как работают эти функции, должен быть более хороший способ, чем создание объекта массива и перезапись строки. Я еще раз посмотрю на это позже, и если я приду к чему-либо, я выложу это здесь.

0 голосов
/ 26 октября 2012

Это то, что я делал в 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');
}
0 голосов
/ 01 марта 2012
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]);               
}
...