- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在用 javascript/jquery 做一个小骰子游戏。我从使用 AJAX
获得的 REST API
获得一些用户(在本例中为玩家),如下所示:
var APICaller = (function () {
let endpoint = "https://jsonplaceholder.typicode.com/";
function api_call(method, url, data, callback) {
$.ajax({
url: url,
method: method,
data: data,
success: callback
});
}
function get_users(callback) {
let method = "GET";
let url = endpoint + "users";
let data = {};
api_call(method, url, data, callback);
}
return {
get_users: get_users,
};
})();
玩游戏的人可以从用户列表中选择一个玩家,然后按下播放按钮。
按下播放按钮时,骰子应为每个玩家掷出 3 个数字,并在每个玩家的一侧显示所有数字。然后骰子值列表应该在一段时间后改变,只有三个骰子值的总和应该在该列表中,并且用户列表应该按点数顺序排列,总点数最高的在最上面。
这是我试图让这些事情发生的方式:
var Game = (function (){
//Function for when the dice rolls.
function roll_dice(){
var value1 = $(".val1");
var value2 = $(".val2");
var value3 = $(".val3");
var v1 = Math.floor(Math.random() * 6) + 1;
var v2 = Math.floor(Math.random() * 6) + 1;
var v3 = Math.floor(Math.random() * 6) + 1;
var dice_total = v1 + v2 + v3;
value1.text = v1;
value2.text = v2;
value3.text = v3;
}
return{
roll_dice: roll_dice
};
})();
var EventHandlers = (function () {
function init(){
APICaller.get_users(on_get_users_success);
function on_get_users_success(response) {
//For each user in the API
$.each(response, function (i, user) {
$("#my-list").append('<li class="list-li"><a class="list-a">' + user.name + '</a></li>');
//Create the divs and p tags
$("#dice_value").append('<div class="val_div"> <p class="val1"></p> <p class="val2"></p> <p class="val3"></p></div>');
});
//change information
$("#info-txt").text("Välj en spelare!");
}
// On klick on a user make klicked user your own player.
$("#my-list").on('click', '.list-a', function(){
var currentPlayer = this.text;
$("#info-txt").text("Tryck på spela knappen för att börja spelet!");
$("#currentPlayer-div").animate({height: '300px', opacity: '1'});
$("#currentPlayer-h3").text(currentPlayer);
});
// On klick of the play button
$("#startGame-button").click(function (){
$("#dice_value").animate({ opacity: '1'});
$("#dice_value").ready('.val1', function(){
text = v1;
});
$("#dice_value").ready('.val2', function(){
text = v2;
});
$("#dice_value").ready('.val3', function(){
text = v3;
});
Game.roll_dice();
});
}
return {
init: init,
}
})();
$(document).ready(function(){
EventHandlers.init();
});
我遇到的问题是 3 个骰子值没有显示,我猜它没有绑定(bind)到这个因为它是动态添加的。
$("#dice_value").append('<div class="val_div"> <p class="val1"></p> <p class="val2"></p> <p class="val3"></p></div>');
这是按下开始按钮时应该发生什么以及我尝试在 p 标签中绑定(bind)骰子值的代码:
// On klick of the play button
$("#startGame-button").click(function (){
$("#dice_value").animate({ opacity: '1'});
$("#dice_value").ready('.val1', function(){
text = v1;
});
$("#dice_value").ready('.val2', function(){
text = v2;
});
$("#dice_value").ready('.val3', function(){
text = v3;
});
Game.roll_dice();
});
这是html代码:
<div id="top-div">
<h1 id="title">The game</h1>
<p id="info-txt"></p>
</div>
<div id="currentPlayer-div">
<h1 id=playerHeader>Din spelare</h1>
<h3 id="currentPlayer-h3"></h3>
<button id="startGame-button">Spela</button>
</div>
<div id="main_gameDiv">
<div id="dice_value"></div>
<ul id="my-list"></ul>
</div>
我希望这足以说明我需要帮助的方面:)
最佳答案
你打错了,你正试图以纯 javascript 的方式使用 jQuery 对象:
function roll_dice(){
var value1 = $(".val1");
var value2 = $(".val2");
var value3 = $(".val3");
var v1 = Math.floor(Math.random() * 6) + 1;
var v2 = Math.floor(Math.random() * 6) + 1;
var v3 = Math.floor(Math.random() * 6) + 1;
var dice_total = v1 + v2 + v3;
// value1, value2 & value3 are jQuery objects, not javascript DOM elements
//value1.text = v1;
//value2.text = v2;
//value3.text = v3;
value1.html(v1);
value2.html(v2);
value3.html(v3);
}
关于javascript - 使骰子值附加到动态 javascript 制作的 html 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52300941/
我刚刚向自己介绍了 WebGL 和 Threejs,作为开始,我正在尝试创建一个 3D 骰子。我已经到了创建立方体的地步,但我真的不知道如何在立方体的面上放置数字,我能找到的只是如何更改颜色。我已经查
这就是我现在得到的...... var max = 7; var min = 1; $('#dice').click(function() { random = Math.floor(Math.r
我是 Unity 的新手,一直在尝试掷骰子。我遇到了一组教程,它们允许我创建一个 3d 模具(模具使用 Rigidbody 和 Mesh Collider)并编写脚本使其在空格键上滚动,如下所示: 骰
我是 JavaScript 新手,我需要一些想法/帮助来了解如何使我的脚本正常工作。所以我们的想法是,你掷两个骰子,通过按下“掷骰子”按钮然后按下重置按钮来重置整个 HTML 中的所有内容。 所以事情
我正在尝试构建一个掷骰子游戏,如果计算机自动掷出一对骰子,并且如果 cpu 掷出 7 或 11,则用户获胜。然而,如果用户掷出 2、3 或 12,他们将自动失败。如果用户滚动任何其他数字(4、5、6、
背景 如此处所述http://www.ericharshbarger.org/dice/#gofirst_4d12 , “先走”骰子是一组四个骰子,每个都有唯一的编号,因此: 任何两个或更多骰子都不会
我是一名优秀的程序员,十分优秀!