我有一组动态的 Raphael SVG 元素。我通过用户发起的 ajax 调用添加新元素并删除旧元素。我使用 set.push() 添加新元素,但由于需要删除的元素通常不是集合中的最后一个元素,所以我使用 element.remove() 而不是 set.pop()。这会在集合中留下一个已删除的元素,当我调用 set.animate() 时,会导致动画回调方法不被调用。也许这是 Raphael 1.5.2 中的一个 bug。
jsFiddle 示例:http://jsfiddle.net/G7fAQ/ 有没有更好的方法来删除与动画集合中引用的元素?或者我只能在调用 element.remove() 时手动管理 set.items 数组、set.length 变量和集合元素?
即:http://jsfiddle.net/G7fAQ/1/ 谢谢。
jsFiddle 示例:http://jsfiddle.net/G7fAQ/ 有没有更好的方法来删除与动画集合中引用的元素?或者我只能在调用 element.remove() 时手动管理 set.items 数组、set.length 变量和集合元素?
即:http://jsfiddle.net/G7fAQ/1/ 谢谢。
set
似乎不响应splice
函数。请参见 http://jsfiddle.net/G7fAQ/2/ - Justinset
的items
属性是一个数组,并且可以响应splice
。请查看 http://jsfiddle.net/chris5marsh/G7fAQ/22/ - 我认为它的响应方式符合您的要求。 - chris5marsh