如何存储高度值数组并在另一个脚本中使用它们

时间:2013-05-20 19:25:45

标签: javascript jquery arrays jquery-animate each

我有很多需要学习的东西,所以可以使用一些指针:http://jsfiddle.net/David_Knowles/9kDC3/

问题

  1. 我正在尝试迭代存储条形中条形的高度值 图表。
  2. 然后我将所有高度设置为零
  3. 然后我触发了条形图的动画,我将高度增加到存储在数组
  4. 中的原始值

    问题

    1. 我认为数组正在被覆盖而不是 越来越多
    2. 我不知道与数据库共享数组值的最佳方法是什么 我稍后触发的其他脚本
    3. //

      $(function(){
      // get the height of all the bars
      var $theBars = $("#v-bars").children();
      var BarsHeight = $theBars.each(function(index, element ) {
          var origHeight = [];
          origHeight.push($(this).attr("height"));
          console.log (origHeight);
      });
      
      //
      $("#svg-skills-expertise").click(function() {
          $($theBars).each(function(){
              $(this).css("MyH",$(this).attr("height")).animate(
              {
                  MyH:400 // this value needs to be the array values so how 
              },
              {
                  step:function(v1){
                      $(this).attr("height",v1)
                  }
              })
          })
          console.log ("Yeap the clicked it! callback");
      });
      });
      

1 个答案:

答案 0 :(得分:2)

Updated!

在函数调用之外初始化 origHeight ,将参数“i”添加到 $($ theBars).each 函数(将索引传递给每个调用),以及设置 MyH:origHeight [i]

/* SVG ARRAY \\\\\\\\\ */

var origHeight = [];
$(function(){
    var $theBars = $("#v-bars").children();
    var BarsHeight = $theBars.each(function(index, element ) {
        origHeight.push($(this).attr("height"));
        console.log (origHeight);
    });


    $("#svg-skills-expertise").click(function() {
        $($theBars).each(function(i){
            $(this).css("MyH",$(this).attr("height")).animate(
            {
                MyH:origHeight[i]
            },
            {
                step:function(v1){
                    $(this).attr("height",v1)
                }
            })
        })
        console.log ("Yeap clicked it!");
    });
});