Javascript 获取';顶部';删除元素的位置属性
我正在处理一个项目,在这个项目中,我必须拖放元素,并对这些元素执行一些进一步的操作。目前,我正在尝试获取容器上丢弃的元素的位置,但调试器中出现以下错误 错误 trail.js:262未捕获类型错误:无法读取未定义的属性“top” 上下文中的方法Javascript 获取';顶部';删除元素的位置属性,javascript,jquery,position,typeerror,jsplumb,Javascript,Jquery,Position,Typeerror,Jsplumb,我正在处理一个项目,在这个项目中,我必须拖放元素,并对这些元素执行一些进一步的操作。目前,我正在尝试获取容器上丢弃的元素的位置,但调试器中出现以下错误 错误 trail.js:262未捕获类型错误:无法读取未定义的属性“top” 上下文中的方法 function saveFlowchart(){ var nodes = []; ////////////////////////////////////////////////////////////////// //Cod
function saveFlowchart(){
var nodes = [];
//////////////////////////////////////////////////////////////////
//Code in Context to the question//
var matches = [];
var searchEles = document.getElementById("container").children;
for(var i = 0; i < searchEles.length; i++)
{
matches.push(searchEles[i]);
alert("elements: "+ searchEles[i].id);
var idOfEl = searchEles[i].id;
var $element = $(idOfEl);
var position = $element.position();
position.bottom = position.top + $element.height();
position.right = position.left + $element.width();
alert("Top position: " + position.top + "\nLeft position: " + position.left + "\nBottom position: " + position.bottom + "\nRight position: " + position.right);
}
/////////////////////////////////////////////////////
$(".node").each(function (idx, elem) {
var $elem = $(elem);
var endpoints = jsPlumb.getEndpoints($elem.attr('id'));
console.log('endpoints of '+$elem.attr('id'));
console.log(endpoints);
nodes.push({
blockId: $elem.attr('id'),
nodetype: $elem.attr('data-nodetype'),
positionX: parseInt($elem.css("left"), 10),
positionY: parseInt($elem.css("top"), 10)
});
});
var connections = [];
$.each(jsPlumb.getConnections(), function (idx, connection) {
connections.push({
connectionId: connection.id,
pageSourceId: connection.sourceId,
pageTargetId: connection.targetId
});
});
var flowChart = {};
flowChart.nodes = nodes;
flowChart.connections = connections;
flowChart.numberOfElements = numberOfElements;
var flowChartJson = JSON.stringify(flowChart);
//console.log(flowChartJson);
$('#jsonOutput').val(flowChartJson);
}
函数保存流程图(){
var节点=[];
//////////////////////////////////////////////////////////////////
//根据问题的上下文编写代码//
var匹配=[];
var searchEles=document.getElementById(“容器”).children;
对于(var i=0;i
此方法保存连接并以json格式输出。但是我也需要重新生成定制的元素。这就是为什么我要尝试找到这些位置并重新生成它们,以便重新创建创建的流程图
在此方面的任何帮助都将不胜感激 以下内容可能会有所帮助 前一行代码
var $element = $(idOfEl);
更改为
var $element = $("#" + searchEles[i].id);