2014-09-06 64 views
0

创建我有一个jQuery函数来创建一个简单的div一个div元素,代码如下 - var mouseX;var mouseY;定位与jQuery

$(document).mousemove(function (e) { 
    mouseX = e.pageX; 
    mouseY = e.pageY; 
}); 

function createObj() { 
    var o = $('<div />'); 
    o.addClass('myDiv'); 
    o.css({'top':mouseY,'left':mouseX}).fadeIn('slow'); 
    $(document.body).append(o); 
} 

我的问题是,第一个div是在要求的位置上创建的,但如果我再次调用该函数来创建另一个div,它创建在第一个div下面,而下一个创建在第二个下面等。

如何在当前鼠标位置创建新div?

+0

被他们定义为'absolute'?你可以做一个小提琴吗? – 2014-09-06 16:47:37

+1

你的代码很好:http://jsfiddle.net/fy7x5vmr/ – 2014-09-06 16:53:26

回答

0

这段代码正在做你想做的事情,你不能分辨出div是在顶部还是在彼此之下,因为它们具有相同的颜色。

此代码会为每个新的div随机颜色,所以你可以看到,新的实际上是对旧的顶部:

var colors = ["blue", "red", "lime", "purple"]; 
color = colors[Math.floor(Math.random()*colors.length)]; 

$(document).mousemove(function (e) { 
    mouseX = e.pageX; 
    mouseY = e.pageY; 
}); 

function createObj() { 
    var o = $('<div />'); 
    o.addClass('myDiv'); 
    o.css({'top':mouseY,'left':mouseX, background: color}).fadeIn('slow'); 
    $(document.body).append(o); 
    color = colors[Math.floor(Math.random()*colors.length)]; 
} 
$(document).click(createObj); 

DEMO

+0

谢谢James, 如果我让o可拖动,那么它不会在鼠标位置位置创建对象,是否有解决方案? – Shai 2014-09-07 05:21:50

+0

嗨再次, 我发现,如果我设置div后的位置,我将它添加到文档正文它工作正常。 谢谢 – Shai 2014-09-07 06:38:13