gpt4 book ai didi

javascript - 点击无法解除绑定(bind)的问题

转载 作者:行者123 更新时间:2023-11-28 20:30:40 25 4
gpt4 key购买 nike

我正在构建一个小冒险来帮助我理解 JQuery/Javascript 的一些概念,但我遇到了障碍。

我想要做的是点击“获取”按钮,然后点击屏幕上的项目将其移动到库存中。好消息是,一切都有效。坏消息是,如果我按下另一个项目而不先使用“获取”按钮,它会直接进入我的库存。

“看”也有同样的问题。您应该先按“查看”,然后按项目才能获得描述,但一旦按下,它会立即为您点击的每个项目提供描述。

您可以想象,一旦您同时按下这两个按钮,您单击的每个项目(无需单击其他按钮)都会为您提供描述,并立即出现在您的库存中。

这就是我尝试解除绑定(bind)的方法:

$("#take").click(function () {
$("#zilverenKogel").click(function () {
$("#zilverenKogel").fadeOut(1200, 0);
$("#invKogel").fadeTo(1500, 1);
$("#take").unbind("click");

任何帮助将不胜感激!

Mofx 帮我解决了这个问题。结束和工作结果是:

 var state = null;
$( "#take" ).click(function () {state = "take";})
$( "#look" ).click(function () {state = "look";})


$( "#zilverenKogel" ).click(function () {
if (state == "take") {
$("#zilverenKogel").fadeOut(1200, 0);
$("#invKogel").fadeTo(1500, 1);
state=null;
} else if (state == "look") {
alert("blablabla");
state=null;
}

});

非常感谢 Mofx!

最佳答案

您解除了错误的事件绑定(bind)。您想要取消绑定(bind)“#zilverenKogel”上的事件,因为这是执行“采取操作”的事件。

我还怀疑,您也在“$(”#take”).click(function () {”中将事件连接到其他元素。您必须将它们全部断开连接。在采取该操作或执行另一个操作后已选择。

也许状态机在这里会是更好的解决方案。像这样的东西:

var state = null;
$("#take").click(function () {state = "take";}
$("#look").click(function () {state = "look";}

$("#zilverenKogel").click(function () {
if (state == "take") {
moveToInventory();
} else if (state == "look") {
showDescription();
}
}

关于javascript - 点击无法解除绑定(bind)的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16483834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com