Javascript 停止创建div时可拖动Jquery

Javascript 停止创建div时可拖动Jquery,javascript,jquery,jquery-ui,createelement,Javascript,Jquery,Jquery Ui,Createelement,好吧,我真的不确定我做错了什么,但是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 he

好吧,我真的不确定我做错了什么,但是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???

您从未将div实际添加到页面中。您需要使用类似于
append
的方法将div添加到DOM中。

您实际上从未将div添加到页面中。您需要使用类似于
append
的方法将div添加到DOM中。

确实创建了
元素,但您从未将其添加到DOM树中,因此它在页面上永远不可见

您可以将新元素附加到(例如)页面正文:

document.body.appendChild(newdiv);
另一方面,如果您将jQuery的使用扩展到它的代码中,您的
folliage()
函数将更短,并且可能更可读

还请注意,行:

document.getElementById(id).style.left=pos_y+'px';
大概应该是:

document.getElementById(id).style.top = pos_y + 'px';
确实创建了
元素,但您从未将其添加到DOM树中,因此它在页面上永远不可见

您可以将新元素附加到(例如)页面正文:

document.body.appendChild(newdiv);
另一方面,如果您将jQuery的使用扩展到它的代码中,您的
folliage()
函数将更短,并且可能更可读

还请注意,行:

document.getElementById(id).style.left=pos_y+'px';
大概应该是:

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

如果您使用的是jQuery,那么应该使用jQuery的元素创建方法,而不是
document.createElement
。但您的问题似乎是没有将新创建的元素添加到文档中。尝试使用
jQuery(“”).appendTo('body')
或类似的东西。

如果使用jQuery,应该使用jQuery的元素创建方法,而不是
document.createElement
。但您的问题似乎是没有将新创建的元素添加到文档中。尝试使用
jQuery(“”).appendTo('body')或类似的东西。

谢谢,这是一个愚蠢的错误,我没有意识到,我花了两个小时试图弄明白,以为浏览器会把我的大脑搞乱:p.谢谢,汉克斯,这是一个愚蠢的错误,我没有意识到,在过去的两个小时里,我一直在想,浏览器让我的思维变得混乱:P.谢谢这些空间有什么不同吗?我不是一个专家,只是感兴趣:)除了提高可读性之外,没有什么不同:)哈哈,这是真的:)我应该养成在里面放空格的习惯:)谢谢这些空格有什么不同吗?我不是专家,只是感兴趣:)没什么区别,除了提高可读性之外:)哈哈,这是真的:)我应该养成在里面放空格的习惯:)谢谢