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

.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;
...

また、値が期待どおりでない場合は、に変更positionしてみてくださいoffset

于 2012-12-25T16:59:08.610 に答える
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;
于 2012-12-25T17:05:03.540 に答える
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 に答える