我有一组动画 Raphael SVG 元素。我正在通过用户发起的 ajax 调用添加新元素并删除旧元素。我 set.push() 新元素,但因为我需要删除的元素通常不是集合中的最后一个元素,所以我使用 element.remove() 而不是 set.pop()。这会在集合中留下一个已删除的元素,当我调用 set.animate() 时,会导致动画回调方法不被调用。也许这是 Raphael 1.5.2 中的一个错误。
jsFiddle 示例:http://jsfiddle.net/G7fAQ/ http://jsfiddle.net/G7fAQ/
是否有更好的方法来删除动画集中引用的元素?或者,当我调用 element.remove() 时,我是否只需手动管理 set.items 数组、set.length 变量和 set 元素?
i.e. http://jsfiddle.net/G7fAQ/1/ http://jsfiddle.net/G7fAQ/1/
Thanks
从数组中删除一个元素(这就是拉斐尔set
毕竟),你可以使用splice
功能。
如果您知道数组中元素的索引,那么就很简单:
set.items.splice(index);
这将从数组中删除第索引元素。splice
返回被删除的元素,所以如果你需要remove()
或者将其动画化到屏幕之外,都可以。
Edit: splice
接受两个参数,即要删除的数组中的索引,以及要删除的元素数量(加上要添加到数组中的成员的任意数量的附加参数,此处不需要这些参数)。
代码应为:
set.items.splice(index, 1);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)