【问题标题】:Rapahel set.splice() issue拉斐尔 set.splice() 问题
【发布时间】:2012-01-09 00:55:44
【问题描述】:

以下代码抛出错误“s.splice is not a function”:

    var s = this.paper.set();
    s.push(this.paper.rect(10,10,100,100));
    s.push(this.paper.rect(10,10,100,100));
    s.splice(0,1);

s.clear 也会抛出类似的错误。

我做错了什么?非常感谢。

【问题讨论】:

  • 经过额外的研究和实验,我发现我可以进入集合并操纵其items 属性,这是一个包含集合中所有元素的常规JS 数组。虽然不是一个理想或令人满意的解决方案。此外,每当我对items 进行修改时,它都会带来必须更新集合的length 属性的负担,这会导致数组长度发生变化。就像我说的,不漂亮。
  • 1.5.2 似乎没有拼接方法:jsfiddle.net/2YsSy/3,但 2 有:jsfiddle.net/2YsSy/4
  • @oli 谢谢!请将此作为答案发布,以便我接受它作为我接受的答案。

标签: set raphael splice


【解决方案1】:

您的代码没问题。你确定this.paper 真的指向拉斐尔论文吗?试试console.log(this.paper) 看看它是否是Raphael 实例。

这对我有用:

var paper = Raphael("paper", 300, 300); 
var s = paper.set();
    s.push(paper.rect(10,10,100,100));
    s.push(paper.rect(10,10,100,100));
    s.splice(0,1);

【讨论】:

  • 感谢您的建议。我试过了,但得到了同样的错误。我正在使用 Raphael 1.5.2。
【解决方案2】:

正如您所提到的,您使用的是 1.5.2,它似乎没有拼接方法:http://jsfiddle.net/2YsSy/3/

2 但是:http://jsfiddle.net/2YsSy/4/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 2011-05-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    相关资源
    最近更新 更多