0

我所拥有的是以下代码来创建一个 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,但我无法弄清楚。

4

5 回答 5

1

这里 gCurrentBlock 是一个 id,你在其中直接使用 jquery 方法,所以它不起作用。

尝试x=$('#'+gCurrentBlock).css('left')//如果您想要左侧位置的数字,它会返回您的左侧位置,例如 150 像素,您可以使用

 x=$('#'+gCurrentBlock).position().left; //will return x as 150

你可以为 y 做同样的事情。

y=$('#'+gCurrentBlock).css('top');

或者

y=$('#'+gCurrentBlock).position().top;
于 2012-12-25T17:05:03.540 回答
1

.css()如果不将其用作 jQuery 对象,则无法使用。

请尝试以下操作:

var x = document.getElementById(gCurrentBlock).style.left;
var y = document.getElementById(gCurrentBlock).style.top;
于 2012-12-25T16:58:26.320 回答
1

不太确定您的代码试图完成什么......但您需要查看 jQuerypositionoffset方法,这将为您的元素提供坐标。

我希望您的代码看起来更像这样:

...
var position = $('#' + gCurrentBlock).position();
var x = position.left;
var y = position.top;
...

如果值不是您所期望的,请尝试更改positionoffset.

于 2012-12-25T16:59:08.610 回答
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');
于 2012-12-25T17:43:31.240 回答
0

gCurrentBlock是一个仅包含 div 的 id 的变量,因此

替换这个

var x = gCurrentBlock.css('left');

var x = $("#"+gCurrentBlock).css('left');

希望这会有所帮助!

于 2012-12-25T17:02:11.293 回答