2014-07-14 149 views
0

我是编程新手。我正在使用kineticjs.while使用'get'属性来设置所需图层的不透明度。我被抓到了那个错误。javascript:未捕获TypeError:无法读取undefined属性'get'

squareShapesLastRow2.on('click', function() 
      { 
       var highlightspots=[31,14,20,1,33,16,24,5,10,23,8,30,11,36,13,27]; 
       a=this; 
       indexval = highlightspots.indexOf(parseInt(a.attrs.id)); 
       console.log(indexval); 
       for (var i=0;i<(1+1);i++) 
       { 
        if(indexval>=highlightspots.length) 
        { 
        indexval=0; 
        } 
        indexval++; 
       } 
        for (var j=0;j<(4+1);j++) 
        { 
         if(indexval<0) 
         { 
          indexval=highlightspots.length-1; 
         } 
         else if(indexval>=0) 
         { 
          var shape = a.highlight_layer.get(highlightspots[indexval])[0]; 
          shape.setOpacity(1); 
         } 
         a.highlight_layer.draw(); 
         indexval--; 
        } 
       setTimeout(function() { 
       for (var i = 0; i < highlightspots.length; i++) 
       { 
        var shape = a.highlight_layer.get("#high_" + highlightspots[indexval])[0]; 
        shape.setOpacity(.3); 
       } 
       a.highlight_layer.draw();},1000); 
      }); 
+0

你在哪里定义highlight_layer?在使用它之前,请尝试console.log(a.highlight_layer);如果它未定义,那么您的问题 –

+0

谢谢Mauno V您的有效反馈。我修复了这个错误。问题是与代码中提到的'id'我dint提到高光层 – Luna

+0

正确的方法是:var shape = frenchBet.figure.frenchVariables.highlight_layer.get(“#”+ highlightspots [indexval] +“high “)[0]; – Luna

回答

0

您应该为上述图层的引用添加'id'。 代码改写为: var shape = a.highlight_layer.get(“#”+ highlightspots [indexval])[0];

相关问题