以下是我的应用程序构建方式的简要说明:
元素是动态创建的。所有元素都是可拖动和可调整大小的。我创建了一个在单击按钮时运行的函数。这是功能:
$( '#save_canvas' ).click( function(e){ var _tmpArray = []; //Temp Array var i = 0; $( '#canvas' ).children('.elem').each( //$('.elem').each( function(){ _tmpArray = []; //Temp Array _id = $(this).attr('id'); _top = $( '#' + _id ).css('top'); _left = $( '#' + _id ).css('left'); _height = $( '#' + _id ).css('height'); _width = $( '#' + _id ).css('width'); _tmpArray[0] = _id; _tmpArray[1] = _height; _tmpArray[2] = _width; _tmpArray[3] = _top; _tmpArray[4] = _left; } ); });
该功能对于第一个元素(第一个孩子)非常适用。但不是其余的。这是一个创建了3个元素的数组的document.write输出:
== LEGEND ==
元素Id
高度
宽度
顶部
左郎
textblock_1 50px 150px 262px 100px textblock_2 undefined undefined undefined undefined textblock_3 undefined undefined undefined undefined
我在网上进行了广泛的搜索,无法为我的生活找到这个...请帮忙吗? :)
答案 0 :(得分:1)
您是否在后续文本块中设置了ID?您不需要连续使用“$('#'+ _id)”,只需使用$(this)。
答案 1 :(得分:0)
非常感谢大家帮忙找到这段代码的问题!
结束这个问题部分是因为我调用元素的方式 - 我必须弄清楚为什么还要 - 但也因为我必须使用.height()和.width():
_top = $( this ).css('top'); _left = $( this ).css('left'); _height = $( this ).height(); _width = $( this ).width();
再一次,谢谢! :)