拉斐尔:图形元素消失了

时间:2013-01-20 15:01:00

标签: javascript raphael

我开始摆弄拉斐尔,但我遇到了一个无法解决的问题:

出于测试目的,我正在尝试简化方案: 使用x和y的两个输入字段在给定位置添加一个圆。

圆圈将出现几分之一秒,然后消失。它发生在chrome和FF(没有尝试过其他人)

我有这个HTML

<div id="canvas_container"></div>
x<input id="cx" /><br/>
y<input id="cy" /><br/>
<button onclick="see(document.getElementById('cx').value,document.getElementById('cy').value)">Populate</button>

和这个js

 var paper;
window.onload = function () {paper = new Raphael(document.getElementById('canvas_container'), 1000, 1000);
}

function see(x, y) {

    alert("coords " + x + " " + y);
var fino = paper.circle(x, y, 20).attr({
    stroke: 'none',
    fill: '#f60'
}).toFront();}

我确信这会很容易,也许是愚蠢的,但我看不到它 提前谢谢!

1 个答案:

答案 0 :(得分:1)

首先。我建议你不要使用内联javascript,最好以不同的方式定义事件监听器。在下一个小提琴中,我使用的方法也不是更好。您可以使用target.addEventListener(type, listener[, useCapture]);,例如,您可以here查看其工作原理。

所以,你可以尝试使用这个标记的起点:

    <div id="canvas_container"></div>
    <lable>x</lable>
    <input id="cx" /><br/>
    <lable>y</lable>
    <input id="cy" /><br/>
    <button id="button">Populate</button>

这个JS:

var paper;
paper = new Raphael(document.getElementById('canvas_container'), 1000, 1000)

function see(x, y) {
    alert("coords " + x + " " + y);
    var fino = paper.circle(x, y, 20).attr({
        stroke: 'none',
        fill: '#f60'
    })

}

var button = document.getElementById('button');

button.onclick = function(){
    var x = document.getElementById('cx').value;
    var y = document.getElementById('cy').value;
    see(x,y);
}

你可以看到它在this小提琴上工作。你准备好了。