我有两个问题。
我正在动态创建放置在地图上的圆圈。每个圆圈在鼠标悬停时动画较大,然后在鼠标悬停时动画较小。圆圈在被点击时需要保持大。我通过在单击处理程序中使用 unmouseout() 删除 mouseout 事件来完成这一部分。但是,这就是我被卡住的地方,当我单击一个新圆圈时,我需要先前选择的圆圈(没有它的 mouseout 事件的圆圈)以动画回其原始大小。我想我可以通过将它的 mouseout 事件放回它来实现这一点?但一直无法让它发挥作用。任何想法我怎么能做到这一点?
此外,根据从 xml 读取的数据项的类型和数量,圆圈会动态生成并放置在地图上。我想删除所有这些,然后在选择 UI 时用新的集合替换。我的问题是如何在用新元素替换它们之前删除所有元素。
我包括我的脚本,它执行第一个问题中描述的内容。它不是从 .xml 中读取,而是从用于测试目的的数组中读取。我已经用 addClass removeClass 和 css 成功完成了这个。在这里尝试过,但不行。任何帮助将不胜感激!谢谢!
var arr = [[556,227,"this", "Is text that is to be the abstract"],[500,60,"that", "Is text that I hope is here"],[180,80,"another thing", "Even more text"]];
var currRect;
var currTitleTxt;
var currTeaseTxt;
function doMe() {
var paper = new Raphael(document.getElementById('canvas_container'), 696, 348);
for (var i = 0; i < 5; i++) {
paper.circle(arr[i][0], arr[i][1], 6)
.attr({fill: '#fff', 'fill-opacity': 0.5})
.data("i", [arr[i][0],arr[i][1], arr[i][2], arr[i][3]])
.click(function () {
this.unmouseout();
})
.mouseover(function () {
this.animate({ r:8 }, 250 );
this.animate({"fill-opacity":1}, 150 )
})
.mouseout(function () {
this.animate({ r:6 }, 250 );
this.animate({"fill-opacity":0.5}, 150 )
});
}
}