不知怎的,我不能让var“转”变。
--------------'#a3'是一个div -----------------
对于所有代码,请转到here。
以下是一些js / jquery:
var turn = 1;
if (turn === 1) {
//----------------------------red
if (da3 === false) {
$('#a3').click(function () {
$(this).css("background-color", "red");
turn = 0;
});
}
if (turn === 0) {
//----------------------------blue
if (da3 === false) {
$('#a3').click(function () {
$(this).css("background-color", "blue");
turn = 1;
});
}
这是我用过的一些css:
div {
display: inline-block;
background-color:grey;
width : 150px;
height: 150px;
}
答案 0 :(得分:1)
这是因为你只添加一个只做一件事的事件处理程序。它不会神奇地添加另一个。
在点击事件中执行if / else逻辑。
答案 1 :(得分:0)
您当前的代码结构如下:
var turn = 1; // red turn first
if (turn === 1) {
// assign click handlers for red moves
}
if (turn === 0) {
// assign click handlers for blue moves
}
这个问题是,这里将使用的唯一点击处理程序是if (turn === 1)
块中定义的处理程序。修改turn
时不会重新评估代码,因此永远不会使用蓝色的点击处理程序。
相反它应该看起来像这样:
var turn = 1; // red turn first
// example click handler:
$('#a3').click(function () {
// check whose turn it is *inside* of the click handler
if (turn === 0) {
$(this).css("background-color", "blue");
turn = 1;
} else {
$(this).css("background-color", "red");
turn = 0;
}
});
// other click handlers like the above (or better yet, reuse the same function)
答案 2 :(得分:0)
如果要通过单击a3元素来切换背景颜色,则需要在事件处理程序中执行if / else检查 :
bg_state = 0;
$('#a3').click(function () {
if (bg_state===0) {
$(this).css("background-color", "blue");
bg_state=1;
} else {
$(this).css("background-color", "red");
bg_state=0;
}
});
事件处理程序的设置仅在页面加载时执行一次!