JavaScript events/functions 不仅从按钮触发,而且从整个页面触发,增量游戏
JavaScript events/functions triggering not only from button, but from whole page, incremental game
我正在尝试制作我自己的小增量游戏,目前按钮很少。按钮如下:
- “Ka-ching”-点击赚钱
- 3 个用于购买“autoClickers”的按钮。
我的问题是,当您点击网站上的任何地方,甚至是“Ka-ching”按钮时,如果钱足够,自动点击器 2 和 3 就会被购买。我在使用 kaching(ev) {ev.stopPropagation();};
时阻止了 ka-ching 的发生,但它对其他人不起作用。
我的完整代码:https://jsfiddle.net/veix/sdh94o6m/19/(由于某种原因,间隔在 jsfiddle 中不起作用,但没关系,这不是我遇到的错误。而且这个 jsfiddle 没有stopPropagation();
有问题。
还有一部分有问题的部分(我觉得):
//Function for buying Hotdog
function buyHD() {
if (buyClicker(hotdog.cost, this)) {
hotdog.clicks += 0.10;
hotdog.cost *=hotdog.costIncrease;
hotdog.level++;
var e = document.getElementById("hotdog-level");
e.innerHTML = "lvl " + hotdog.level;
var e2 = document.getElementById("buyhotdog");
e2.innerHTML = "Buy for " + hotdog.cost.toFixed(2) + " dollors";
};
};
和
//Event Listener for buying Hotdog
var elhd = document.getElementById("buyhotdog");
elhd = addEventListener("click", buyHD, false);
如何阻止点击任意位置触发的事件?不知何故,它甚至没有发生在第一个 autoClicker 按钮上。
您必须在要有点击事件的元素上使用 addEventListener
。
所以试试elhd.addEventListener("click", buyHD, false);
不确定这是否是错字。您正在写
elhd = addEventListener("click", buyHD, false);
但必须这样
elhd.addEventListener("click", buyHD, false);
我正在尝试制作我自己的小增量游戏,目前按钮很少。按钮如下:
- “Ka-ching”-点击赚钱
- 3 个用于购买“autoClickers”的按钮。
我的问题是,当您点击网站上的任何地方,甚至是“Ka-ching”按钮时,如果钱足够,自动点击器 2 和 3 就会被购买。我在使用 kaching(ev) {ev.stopPropagation();};
时阻止了 ka-ching 的发生,但它对其他人不起作用。
我的完整代码:https://jsfiddle.net/veix/sdh94o6m/19/(由于某种原因,间隔在 jsfiddle 中不起作用,但没关系,这不是我遇到的错误。而且这个 jsfiddle 没有stopPropagation();
有问题。
还有一部分有问题的部分(我觉得):
//Function for buying Hotdog
function buyHD() {
if (buyClicker(hotdog.cost, this)) {
hotdog.clicks += 0.10;
hotdog.cost *=hotdog.costIncrease;
hotdog.level++;
var e = document.getElementById("hotdog-level");
e.innerHTML = "lvl " + hotdog.level;
var e2 = document.getElementById("buyhotdog");
e2.innerHTML = "Buy for " + hotdog.cost.toFixed(2) + " dollors";
};
};
和
//Event Listener for buying Hotdog
var elhd = document.getElementById("buyhotdog");
elhd = addEventListener("click", buyHD, false);
如何阻止点击任意位置触发的事件?不知何故,它甚至没有发生在第一个 autoClicker 按钮上。
您必须在要有点击事件的元素上使用 addEventListener
。
所以试试elhd.addEventListener("click", buyHD, false);
不确定这是否是错字。您正在写
elhd = addEventListener("click", buyHD, false);
但必须这样
elhd.addEventListener("click", buyHD, false);