我正在使用Jquery来获取输入值,因为数字是在其中键入的。除了根据输入的数字在raceeljs上使用#canvas_container在div上绘制圆圈。目前我正在尝试设置最大输入值,如if (value <= 50) {
,其中value是用户的输入。
我最终想要实现的是,如果用户输入30个,则绘制30个圆圈。如果用户键入60或任何值50,则绘制50个以上的圆圈。创建绘制到canvas_container的最大圆圈数。现在我只是试图在输入任何50及以上的值时没有任何事情发生,但是有些圆圈被绘制但只有少数,我不知道为什么。
http://jsfiddle.net/anderskitson/sHNHe/9/
var paper = new Raphael(document.getElementById('canvas_container'), 500, 500);
$("input").keyup(function() {
var value = $(this).val();
if (value <= 50) {
if (value === "") {
var circle = paper.circle(110, 50, 30);
var clear = paper.clear();
} else {
for (i = 0; i <= value; i++) {
var randomNumber1 = Math.floor(Math.random() * 201) - 100;
var randomNumber2 = Math.floor(Math.random() * 201) - 100;
var plusOrMinus = Math.random() < 0.5 ? -1 : 100;
var circle = paper.circle(randomNumber1, randomNumber2, 20);
}
}
}else {
//this should run if a value of 50 or above is entered
}
}).keyup();
答案 0 :(得分:2)
据我所知,你有两个错误:
让我们解决这个问题(简化版):
var paper = new Raphael(25, 25, 500, 500);
$("input").keyup(function() {
var value = parseInt($(this).val());
paper.clear();
if (value > 50) {
value = 50;
}
for (i = 0; i < value; i++) {
var randomNumber1 = 50 + 5 * i;
var randomNumber2 = 50 + 5 * i;
var circle = paper.circle(randomNumber1, randomNumber2, 20);
}
});
看一下Fiddle,我希望这是你想要达到的目标。