2014-07-14 150 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];

相關問題