【问题标题】:how to pass an array of values to $.bbq.pushState如何将值数组传递给 $.bbq.pushState
【发布时间】:2012-03-01 08:57:04
【问题描述】:

我有一个网址

http://www.example.com/

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

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

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

请帮忙…………

【问题讨论】:

    标签: javascript jquery jquery-bbq


    【解决方案1】:
    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]);               
    }
    

    【讨论】:

      【解决方案2】:

      我遇到过这个问题,很快就使用了这两个函数,以数组的形式向片段中添加和删除信息。

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:
          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
              });
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-12-23
            • 1970-01-01
            • 2014-04-05
            • 2019-08-18
            • 1970-01-01
            • 1970-01-01
            • 2018-04-04
            相关资源
            最近更新 更多