麻烦点击不解绑
我正在构建一个小冒险,以帮助我理解JQuery/Javascript的一些概念,并且我遇到了一些障碍。麻烦点击不解绑
我想要做的是通过点击“获取”按钮,然后在屏幕上的项目将其移动到清单。好消息是,所有的作品。坏消息是,如果我先按下另一个项目而不先使用“take”按钮,它会直接进入我的库存。
与“看”相同的问题。您应该首先按下“外观”,然后再按下该项目才能获得描述,但一旦按下,它会立即为每个项目点击描述。
你可以想象,一旦你点击了每一个你点击的物品而没有点击另一个按钮,它会给你一个描述,并直接在你的库存中结束。
这是我正在努力得到它的解除绑定:
$("#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!
您解除了错误的事件。你想解除“#zilverenKogel”上的事件,因为那是做“采取行动”的。我也怀疑,你将事件连接到其他元素以及“$(”#take“)。click(function(){”。你将不得不全部断开它们。在采取行动或其他行动后选择
也许的statemachine会在这里更好的解决方案是这样的:。。?
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();
}
}
使用状态*通常是要走的路,比绑定和解除绑定更好,+1。 – 2013-05-10 14:08:08
啊,是的,这可能就是我刚刚改变#zilverenKogel时不工作的原因。 – Timsalabim 2013-05-10 14:09:09
该状态解决方案看起来好像更好。我要实现这一点,看看我能否实现它。将让你知道这是如何解决我的。 – Timsalabim 2013-05-10 14:11:18
这不解除绑定你在控制台有错误 – 2013-05-10 13:50:43
您是否尝试过使用和关闭功能? – 2013-05-10 13:53:04
对我来说似乎很好http://jsfiddle.net/arunpjohny/kQQ3x/1/ – 2013-05-10 13:55:07