簡體   English   中英

Raphael:將“ .data”鏈接到raphael.js元素

[英]Raphael: Chaining “.data” to a raphael.js element

我在將.data ”鏈接到raphael.js元素時遇到麻煩。

當我稍后嘗試檢索數據時,出現“ undefined ”。

這是我的小提琴: http : //jsfiddle.net/HkNgT/9/

//Draw:
paper.circle(circleCenterX, circleCenterY, circleCenterRadius)
    .attr({'fill':'blue', 'stroke':'red', 'stroke-width':2, 'opacity': 0.8}) 
    .data({"circleCenterX":circleCenterX, 
           "circleCenterY":circleCenterY, 
           "boxYPosition":boxYPosition, 
           "boxXPosition":boxXPosition})
    .id = name+"-circle";

//Output:
    console.log("data is = ", paper.getById(name+"-circle").data("circleCenterX"));

使用此代碼,“ .data(...)部分將 無法正常工作

當我嘗試檢索它(使用paper.getById)時,它顯示“ data is = undefined ”。

我嘗試過的其他方式:

    //Doesn't work
    paper.circle....
    .data("circleCenterX",circleCenterX)
    .data("circleCenterY",circleCenterY)
    .data("boxYPosition",boxYPosition)
    .data("boxXPosition",boxXPosition);

還有一個:

    //Doesn't work
    var c = paper.circle....;
    c.data("circleCenterX",circleCenterX);
    c.data("circleCenterY",circleCenterY);
    c.data("boxYPosition",boxYPosition);
    c.data("boxXPosition",boxXPosition);

還有一個:

    //DOES work, but gives me huge performance losses
    paper.circle....;
    paper.getById(name+"-circle").data("circleCenterX",circleCenterX);
    paper.getById(name+"-circle").data("circleCenterY",circleCenterY);
    paper.getById(name+"-circle").data("boxYPosition",boxYPosition);
    paper.getById(name+"-circle").data("boxXPosition",boxXPosition);

有什么幫助嗎?

因此,我只是在嘗試提供幫助之前從未使用過raphael。 我假設您正在嘗試檢索circleCenterX值?

檢查data功能,看起來好像僅用於設置值。 (如果您要設置一個值,它只會返回一個值)。

function (b,c){
    var d = bb[this.id] = bb[this.id] || {};
    if(arguments.length==1){
        if(a.is(b,"object")){
            for(var e in b)b[g](e)&&this.data(e,b[e]);
            return this
        }
        eve("raphael.data.get."+this.id,this,d[b],b);
        return d[b]
    }
    d[b]=c,eve("raphael.data.set."+this.id,this,c,b);
    return this
}

(Afaict, eve是一個與Raphael捆綁在一起的Event框架。有人知道數據從哪里來嗎?)

因此,這將無濟於事。

檢查圓形對象,我能夠看到/拉出一個cx值,我認為這是您要查找的circleCenterX值...

var circ = paper.getById(name+"-circle");
console.log("baseVal is = ", circ[0].cx.baseVal.value);
console.log("animVal is = ", circ[0].cx.animVal.value);

baseVal is =  100
animVal is =  100

這是您要找的東西嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM