2013-03-11 78 views
0

我有一些文本,它有一个“link variabletext”(其中variabletext对每个链接都是唯一的)形式的类。我试图设置它,以便当我将鼠标悬停在文本上时,相应的对象将使用jQuery更改颜色。KineticJS以编程方式设置笔划

什么,我有一个的jsfiddle:http://jsfiddle.net/hdJCn/

的代码我使用:

<a href="javascript:void(0);" class="link one">One</a> 
<a href="javascript:void(0);" class="link two">Two</a> 
<a href="javascript:void(0);" class="link three">Three</a> 
<div id="container"></div> 

var stage = new Kinetic.Stage({ 
container: 'container' 
}); 

var layer = new Kinetic.Layer(); 

var onecircle = new Kinetic.Ellipse({ 
x: 100, 
y: 100, 
radius: { 
    x: 50, 
    y: 50 
}, 
strokeWidth: 1, 
stroke: 'black' 
}); 

layer.add(onecircle); 
stage.add(layer); 

$('.link').mouseover(function() { 
var numclass = $(this).attr('class').split(' ')[1]; 
(numclass + 'circle').setStroke('orange'); 
}); 

的问题是,它说,对象有没有方法“setStroke”。如果我采用相同的对象名称并对其进行硬编码(因此onecircle.setStroke而不是上述),它可以正常工作。我不知道这是为什么,目前为止我们处于亏损状态。

回答

0

想通了。我不得不把字符串转换为一个对象:

var obj = eval(numclass+'circle'); 

然后用obj.setStroke ....

+0

我宁愿不是kineticJS的使用ID的形状,而不是eval.http://www.html5canvastutorials.com/kineticjs/HTML5帆布选形逐ID与 - kineticjs / – allenhwkim 2013-03-11 22:51:54