【问题标题】:raphael.js passing parameter using the .data() methodraphael.js 使用 .data() 方法传递参数
【发布时间】:2013-07-20 00:04:44
【问题描述】:

我正在尝试在 raphael.js 上使用 .data 方法。

 var r = Raphael('diagram', width, width);
 [...]
 var z = r.path().attr({ arc: [value, color, rad], 'stroke-width': width/24 });
 z.data({"entry": entry});
 z.mouseover(function(){
            this.animate({ 'stroke-width': width/14, opacity: .75 }, 1000, 'elastic');
            if(Raphael.type != 'VML') //solves IE problem
            this.toFront();
            title.stop().animate({ opacity: 0 }, speed, '>', function(){
                this.attr({ text: this.data('entry').name + '\n' + this.data('entry').value + '%' }).animate({ opacity: 1 }, speed, '<');
            });

不幸的是,它不起作用。这是 raphael.js 中的错误,还是我的代码不正确?

请帮忙,谢谢。

如何将参数传递给 mouseover 方法?

http://jsfiddle.net/stefanszakal/St9Ky/

【问题讨论】:

    标签: javascript parameter-passing raphael


    【解决方案1】:

    您使用的是 Raphael JS 1.5。元素上的.data() 方法未实现。

    使用这个://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js

    小提琴很适合它。

    【讨论】:

    • 错误信息:未捕获类型错误:对象 [object Object] 没有方法“数据”。我已经尝试了各种方法来完成这项工作,但没有成功。当我尝试做 z.data({"entry": entry});我得到例外。顺便说一句,我正在 Chrome 中运行它。
    • 你没有使用好的库版本 - 我编辑了我的答案
    • 谢谢,这修复了运行时错误。但这让我回到了第 1 格。如果您在将鼠标悬停在弧上时查看小部件,所有弧都具有相同的值(黑色圆圈中的文本)。如何获得所需的行为?谢谢
    • 这不是最初的问题。如果您还有其他问题,请创建一个新问题并按照已回答的方式关闭此问题(但“giveme teh codez”问题通常不受欢迎。)。而且我不知道期望的行为是什么。
    • 好的,我看到了:在mouseover函数中,在开头加上:var entry = this.data('entry');,然后在同一个函数中,用z.data('entry').代替entry.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多