0

ここで何が間違っているのかよくわかりませんが、divが作成されておらず、理由がわかりません。

$('#tree_01').draggable({appendTo: 'body', helper: 'clone', stop: function(event, ui) {
                var bg_pos_x = -5;
                var bg_pos_y = -1516;
                var width = 148;
                var height = 174;
                var pos_x = $(ui.helper).position().left;
                var pos_y = $(ui.helper).position().top;
                var id = 'tree_'+pos_x+'_'+pos_y;
                folliage(id,bg_pos_x,bg_pos_y,width,height,pos_x,pos_y);
            }});

ドラッグ可能な要素をドロップすると、コードが実行され、次の関数に移動する必要があります。

function folliage(id,bg_pos_x,bg_pos_y,width,height,pos_x,pos_y){
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', id);
    document.getElementById(id).style.left=pos_x+'px';
    document.getElementById(id).style.zIndex='5';
    document.getElementById(id).style.left=pos_y+'px';
    document.getElementById(id).style.width=width+'px';
    document.getElementById(id).style.height=height+'px';
    document.getElementById(id).style.background='url(../img/village.png)';
    document.getElementById(id).style.backgroundPosition=bg_pos_x+'px '+bg_pos_y+'px';

}

しかし、divは作成されませんか????

4

3 に答える 3

1

実際にdivをページに追加することはありません。appenddivをDOMに追加するようなものを使用する必要があります。

于 2012-02-13T18:36:24.447 に答える
1

<div>要素は作成されますが、DOMツリーに追加することはないため、ページに表示されることはありません

たとえば、ページ本文に新しい要素を追加できます。

document.body.appendChild(newdiv);

余談folliage()ですが、jQueryの使用をそのコードに拡張すると、関数は短くなり、おそらく読みやすくなります。

また、次の行にも注意してください。

document.getElementById(id).style.left=pos_y+'px';

おそらく読むべきです:

document.getElementById(id).style.top = pos_y + 'px';
于 2012-02-13T18:36:49.250 に答える
1

jQueryを使用している場合は、の代わりにjQueryの要素作成メソッドを使用する必要がありますdocument.createElement。しかし、問題は、新しく作成された要素をドキュメントに追加していないことのようです。jQuery('<div id=' + id + '/>').appendTo('body');または同様のものを使用してみてください。

于 2012-02-13T18:37:20.637 に答える