javascript - 如何调试我的轮盘 JavaScript 程序?

标签 javascript

我是一名正在尝试学习 JavaScript 的学生。我正在尝试编写随机代码 带有事件处理程序和按钮的数组,用于返回结果 小游戏。我们需要使用下面的一些结构。在 研究这个主题,我发现还有其他写作方式 这个。

开发人员工具和验证 (WC3) 未显示任何错误。谁能告诉我我的方法有什么错误吗?

<!doctype html>
<html>

<head>
    <meta charset="UTF-8">
    <title>HW_6 Random Russian Roulette</title>
</head>

<body>

    <script language="Javascript">
        function shoot() {
            var iShot = Math.floor(Math.random() * 6);
            var trigger = new Array();
            trigger[0] = "ch1 lucky";
            trigger[1] = "ch2 click";
            trigger[2] = "ch3 BANG!";
            trigger[3] = "ch4 click";
            trigger[4] = "ch5 lucky";
            trigger[5] = "ch6 Lucky";

            window.onload = function() {
                document.getElementById("shoot").onclick = shoot;
                document.getElementById("divOutput").innerHTML = trigger;
            }

            alert("trigger[shoot]");
        }
    </script>


    <form>
        <input type="button" value="It's loaded..." id="shoot">
        <div id="divOutput">shoot</div>
        ;
    </form>
</body>
</html>

最佳答案

代码中的错误:

document.getElementById("shoot").onclick = shot; 您需要使用 shoot() 来调用函数。执行以下操作在按钮上添加点击事件(纯js):

  var st = document.getElementById("shoot");
  st.addEventListener("click", function(e) {
    shoot();
  });

一些改进:

var iShot = Math.floor(Math.random() * trigger.length); 这会从数组中选择一个随机索引,因为它使用数组长度作为基础。

定义数组,你可以在js中做到这一点

var trigger = ["ch1 lucky", "ch2 click", "ch3 BANG!", "ch4 click", "ch5 lucky", "ch6 Lucky"];

(解决方案)两个选项:

选项 1(纯 JavaScript)

document.addEventListener("DOMContentLoaded", function(event) {
  //do work
  var st = document.getElementById("shoot");
  st.addEventListener("click", function(e) {
    shoot();
  });

  function shoot() {
    var trigger = ["ch1 lucky", "ch2 click", "ch3 BANG!", "ch4 click", "ch5 lucky", "ch6 Lucky"];
    //get a random element from array
    var iShot = Math.floor(Math.random() * trigger.length);
    //out put result now
    document.getElementById("divOutput").innerHTML = trigger[iShot];
  }
});
<form>
  <button type="button" id="shoot">It's loaded...</button>
  <div id="divOutput">shoot</div>
</form>

选项 2(使用 jQuery)

$(document).ready(function() {

  $('#shoot').on('click', function() { shoot(); });

  function shoot() {
    var trigger = ["ch1 lucky", "ch2 click", "ch3 BANG!", "ch4 click", "ch5 lucky", "ch6 Lucky"];
    var iShot = Math.floor(Math.random() * trigger.length);
    $("#divOutput").html(trigger[iShot]);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<form>
  <button type="button" id="shoot">It's loaded...</button>
  <div id="divOutput">shoot</div>
</form>

关于javascript - 如何调试我的轮盘 JavaScript 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43566433/

相关文章:

javascript - 意外的 JavaScript 输出

javascript - 验证失败时重定向用户

javascript - 引用多个div的ajax调用

javascript - 在 Ember/Ember 数据中访问嵌套的 hasMany 关系

javascript - 如何使用 javascript 在单击 HTML 上的按钮时发生事件

javascript - 使用 angularjs 添加事件监听器

javascript - 如何在 math.random 上指定范围?

javascript - 在 v -for 循环中分别对每个元素进行动画处理 (Vue.JS)

javascript - 如何正确链接到nodejs curve25519库

Javascript 尝试使用 string.replace() 和正则表达式作为列表值