Javascript Math.random()生成单个随机数

Javascript Math.random()生成单个随机数,javascript,jquery,random,Javascript,Jquery,Random,我正在创建一个键盘,在按键时创建div。我已经计算出键盘部分,我希望每个div都随机放置,同时仍然按字母进行聚类。我试图通过向现有的.aclass top和left样式中添加一个介于1和20之间的随机整数来实现这一点 var min=1; var max=20; var random = Math.floor(Math.random() * (+max - +min) + +min); var newtopa= $('.a').position().top + random; var ne

我正在创建一个键盘,在按键时创建div。我已经计算出键盘部分,我希望每个div都随机放置,同时仍然按字母进行聚类。我试图通过向现有的.aclass top和left样式中添加一个介于1和20之间的随机整数来实现这一点

var min=1; 
var max=20;  
var random = Math.floor(Math.random() * (+max - +min) + +min);
var newtopa= $('.a').position().top + random;
var newlefta = $('.a').position().left + random;

function createElement(k) {  
  if (k == "a" || k == "A") { 
    $(".aclass").append('<div class="a" style="top:'+newtopa+'px;left:'+newlefta+'px;"></div>');
  }

然而,我的Math.random行只返回一个随机数。每次我按下“a”键并创建一个div,它都会被放置在同一个位置,而不是随机放置。

您在createElement函数之外声明了随机数,因此您只创建一个,然后每次调用createElement时使用它

var min=1; 
var max=20; 

function createElement(k) {  

    var random = Math.floor(Math.random() * (+max - +min) + +min);
    var newtopa= $('.a').position().top + random;
    var newlefta = $('.a').position().left + random;
    if (k == "a" || k == "A") { 
        $(".aclass").append('<div class="a" style="top:'+newtopa+'px;left:'+newlefta+'px;"></div>');
    }

另外,您没有指定newtopa和newlefta应该给出什么,但是目前您只需要获得该类中第一个元素的位置,这似乎不太可能是您想要的。

您在createElement函数之外声明了随机数,所以您只创建了一个,然后在每次调用createElement时使用它

var min=1; 
var max=20; 

function createElement(k) {  

    var random = Math.floor(Math.random() * (+max - +min) + +min);
    var newtopa= $('.a').position().top + random;
    var newlefta = $('.a').position().left + random;
    if (k == "a" || k == "A") { 
        $(".aclass").append('<div class="a" style="top:'+newtopa+'px;left:'+newlefta+'px;"></div>');
    }

另外,您没有指定newtopa和newlefta应该给出什么,但目前您只需获得该类中第一个元素的位置,这似乎不太可能是您想要的。

这是因为这样做只需调用Math.random函数一次,而你需要在每次按键时生成一个随机数


您可以通过确保每次运行createElement时都执行Math.random来尝试这样做

这是因为这样做只需调用Math.random函数一次,而每次按键时都需要生成一个随机数

您可以通过确保每次运行createElement时都执行Math.random来尝试这样做