简体   繁体   English

单击按钮获得随机数

[英]Getting random number with each button click

I'm trying to get a random number each time someone clicks a button. 每当有人单击按钮时,我都试图获得一个随机数。 The range of the numbers is from one(1) to five(5). 数字范围是一(1)至五(5)。 If this question has already been asked and answered, please point me to the question and I'll delete this one to avoid duplication. 如果已经有人问过并回答了这个问题,请指出这个问题,我将其删除以避免重复。

HTML HTML

<div id="content"></div>
<button id="add">Add Object</button>

JS JS

$(document).ready(function(){
    var Player = {
        name: "One",
        weapon: Sword = {
            damage: 1 + Math.floor(Math.random() * 5),
            speed: 10
        }
    }
    var player_damage = Player.weapon.damage;

    $("#add").on("click", function(){
        $("#content").append(player_damage + " ");
    })
})

Fiddle 小提琴

You don't update your number on click. 您不会在点击时更新您的电话号码。 You set it only once. 您只需设置一次。

 var Player = { name: "One", weapon: Sword = { damage: 0, speed: 10 } } $("#add").on("click", function(){ Player.weapon.damage = 1 + Math.floor(Math.random() * 5); $("#content").append(Player.weapon.damage + " "); }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="content"></div> <button id="add">Add Object</button> 

Generate the new number inside the click function: 在click函数中生成新的数字:

 $("#add").on("click", function(){
            var damage= 1 + Math.floor(Math.random() * 5);
            $("#content").append(damage.toString() + " ");
        })

jsfiddle 的jsfiddle

I updated it using a JavaScript property on the Sword object. 我使用Sword对象上的JavaScript属性更新了它。 Whenever the damage property is accessed, it generates a new value using a getter: 每当damage属性被访问时,它产生用吸气剂的新值:

http://jsfiddle.net/hd7tec5f/3/ http://jsfiddle.net/hd7tec5f/3/

Object.defineProperty(Sword, "damage", {
    get: function() {
        return 1 + Math.round(Math.random() * 1));
    }
});
$(document).ready(function(){
   $("#add").on("click", function(){
        var Player = {
            name: "One",
            weapon: Sword = {
                damage: 1 + Math.floor(Math.random() * 5),
                speed: 10
            }
        };

        var player_damage = Player.weapon.damage;                                           
        $("#content").append(player_damage + " ");
    })
});

http://jsfiddle.net/manzapanza/rayn6m4L/ http://jsfiddle.net/manzapanza/rayn6m4L/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM