尝试使用 JQuery 将 x 和 y 坐标保存在数组中时未定义
Getting undefined while trying to save x and y coordinates in an array using JQuery
我正在使用Raphaeljs库绘制线条,我想存储线条的起点和终点的坐标,但我无法获得正确的语法。
这是代码的一部分:
$(document).ready(function () {
var startX = new Array();
var startY = new Array();
var endX = new Array();
var endY = new Array();
$('input[type="checkbox"][name="check"]').change(function () {
// proceed only when checked
if (this.checked) {
drawLine();
}
});
});
function drawLine() {
var linewidth = $("#width").val();
var color = $("#background").val();
function Line(startX, startY, endX, endY, raphael) {
for(var i=0; i< 25; i++) {
var start = {
x: startX[i],
y: startY[i]
};
var end = {
x: endX[i],
y: endY[i]
};
console.log(startX[i],startY[i]);
console.log(endX[i],endY[i]);
}
var getPath = function () {
return "M" + start.x + " " + start.y + " L" + end.x + " " + end.y;
};
var redraw = function () {
node.attr("path", getPath());
};
node = raphael.path(getPath());
node.attr("stroke-width", linewidth); //sets the width of the line
node.attr("stroke", color);
startx = (node.getBBox().x);
starty = (node.getBBox().y);
//console.log(startx , starty);
//sets the color of the line
return {
updateStart: function (x, y) {
start.x = x;
start.y = y;
redraw();
return this;
},
updateEnd: function (x, y) {
end.x = x;
end.y = y;
redraw();
return this;
}
};
}
$(document).ready(function () {
var pathLength = 0;
var paper = Raphael("droppable", 1280, 470, 0, 0);
$("#droppable").mousedown(
function (e) {
x = e.offsetX;
y = e.offsetY;
line = Line(x, y, x, y, paper);
$("#droppable").bind('mousemove', function (e) {
x = e.offsetX;
y = e.offsetY;
line.updateEnd(x, y);
});
});
$("#droppable").mouseup(
function (e) {
$("#droppable").unbind('mousemove');
});
});
}
在控制台日志中,我未定义,错误消息Uncaught TypeError: Cannot read property '0' of undefined
.
您正在将integers
传递到Line
函数中,而它需要arrays
。然后,您尝试在 startX[i]
处访问 Line
函数中预期数组的第一个元素。您没有使用在代码顶部声明的数组来实现任何内容。数组也是空的,因此即使您将它们传递到 Line
函数而不是整数中,代码也不会起作用,因为没有任何要引用的元素。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何将getJson的响应保存在全局变量中
- 按下按钮时保存cookie
- 如何使用 Angular JS 将数据保存在数据库中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 用于检查数组中是否存在元素的javascript自定义方法
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 如何将多个画布保存为一个图像
- 使用javascript/jquery从现有数组中创建一个新数组,该数组保存项目存在的次数
- jQuery localStorage 如果存在,请保存它
- 如何在移动到新的HTML页面后使用保存在Javascript文件中的保存变量
- 根据页面元素的存在更改文件路径以保存页面内容
- 如何比较保存在变量中的querystring参数,并将变量保存在cookie中,并在每页上进行比较
- 在Json解析和在数据库中保存值方面存在问题
- 将对象替换为保存前已经存在的对象
- 如何在Mongoose中保存之前检查数据库中是否存在嵌入文档