0

以下のready関数でCSS値を設定する必要があります。

   $(document).ready(function ()
   {
      $("<div id='" + 1 + "' class='box'></div>").css("left", 105).css("top",  54).appendTo("#center").draggable();
      $("<input type='text'></input>").appendTo("#" + 1);
    }

正常に動作し、ドラッグ可能なdiv内にテキストボックスを作成してtop:54に配置し、105を残します。サーバークエリからX、Yを取得する必要があり、これを試しました。

    $(document).ready(function ()
    {
        $.ajax({
            type: "POST",
            url: "Default.aspx/Get",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg)
            {
                var singleControls = msg.d.split('.');

                $.each(singleControls, function (key, value)
                {
                    var singleParameters = value.split(',');

                    if (singleParameters[0] != "")
                    {
                        var ids = singleParameters[0];
                        var type = singleParameters[1];
                        var cordX = singleParameters[2];
                        var cordY = singleParameters[3];

                        var container = $("#center").position();
                        var x_Coord = cordX - container.left;
                        var y_Coord = cordY - container.top;
                        $("<div id='" + ids + "' class='box'></div>").css("left", cordX).css("top", cordY).appendTo("#center").draggable();
                        $("<input type='text'></input>").appendTo("#" + ids);
                    }
                });
            }
        });

Get()がX、Yを返す場合、これによりdivが作成されますが、0,0に配置されます。誰かがこれが機能しない理由を説明できますか?

サンプル:https ://skydrive.live.com/redir.aspx?cid = d7fc3da7fdbc700d&resid = D7FC3DA7FDBC700D!302&parid = D7FC3DA7FDBC700D!301

4

1 に答える 1

0

左と上のスタイルをハードコーディングしている場合は、スタイルシートの .box スタイルにそれらを追加してみませんか?

.box{
position:absolute;
left:105px;
top:54px;
}

それ以外の場合、css 関数は次のようになります。

.css({
    position:'absolute',
     left:'105px',
    top:'54px',
    });​

ここにjsfiddle.netの例があります

于 2012-05-15T17:46:30.380 に答える