我所拥有的是以下代码来创建div。
function makeLinkdiv () {
gCurrentBlock = $gBlockDivName + $gBlockPointer;
var idPointer = gCurrentBlock;
var linksBlock = $('<div id ="' + gCurrentBlock + '" class="LinksBlock EditBlock"></div>').appendTo("#canvas");
linksBlock.draggable({containment: "#canvas", scroll: false, grid: [10, 10]}, {cursor: "move", cursorAt: {top: 125, left: 50}});
linksBlock.append('<div class="article_title EditBlock fontCenter fontBold font24">Article Title</div>');
//
// log the div data to the div object
//
var x = gCurrentBlock.css('left');
var y = gCurrentBlock.css('top');
alert ('top is - ' + y + ' left is - ' + x);
divData.items.push({ID: $gBlockPointer, Block: gCurrentBlock, posTop : "450", posLeft : "540" });
//
// increment the block pointer
//
$gBlockPointer = $gBlockPointer + 1;
//
}
发生的事情是我没有获得顶部和左侧的CSS属性。实际上,没有任何反应。我知道我使用变量gCurrentBlock
的方式肯定有问题,但我无法弄清楚。
答案 0 :(得分:1)
如果不将.css()
用作jQuery对象,则无法使用它。
请尝试以下方法:
var x = document.getElementById(gCurrentBlock).style.left;
var y = document.getElementById(gCurrentBlock).style.top;
答案 1 :(得分:1)
不确定您的代码试图完成什么......但是您需要查看jQuery的position
和offset
方法,它们将为您提供元素的坐标。
我希望您的代码看起来更像这样:
...
var position = $('#' + gCurrentBlock).position();
var x = position.left;
var y = position.top;
...
如果值不符合您的预期,请尝试将position
更改为offset
。
答案 2 :(得分:1)
这里gCurrentBlock是一个你直接使用jquery方法的id,所以它不起作用。
尝试x=$('#'+gCurrentBlock).css('left')
//它会以像素150px的像素返回左侧位置
如果你想在数字上留下位置,你可以使用
x=$('#'+gCurrentBlock).position().left; //will return x as 150
你可以为y做。
y=$('#'+gCurrentBlock).css('top');
或
y=$('#'+gCurrentBlock).position().top;
答案 3 :(得分:1)
我认为你没有以适当的方式选择选择器:
var x = gCurrentBlock.css('left');
var y = gCurrentBlock.css('top');
你已经这样添加了它:
var linksBlock = $('<div id ="' + gCurrentBlock + '" class="LinksBlock EditBlock"></div>').appendTo("#canvas");
//--------------------------------^^^^^^^^^^^^^---this is the id of the div
所以你的代码应该是:
var x = $('#'+gCurrentBlock).css('left');
var y = $('#'+gCurrentBlock).css('top');
答案 4 :(得分:0)
gCurrentBlock
是一个变量,它只包含div的id,因此
替换此
var x = gCurrentBlock.css('left');
用
var x = $("#"+gCurrentBlock).css('left');
希望这会有所帮助!!