我想通过点击选择或取消选择div。
我想要这个:
我的问题是当我点击第一个div(变为红色),然后是第二个div(首先是白色和第二个),然后是第三个div,第三个div变成粉红色,或者我想重新运行脚本(为了使第三个div像第一个div一样红。)
我的代码:
$(document).ready(function () {
$i = 1;
$firstcase = "";
$(".blackcase").click(function firstclick(event) {
if ($i == 1)
{
$("#" + event.target.id).css("background-color", "red");
$firstvalue = $("\#" + event.target.id).html();
$firstcase = "\#" + event.target.id + "";
$i++;
}
else
{
return false;
}
$(".blackcase").one("click", function (event) {
$firstcase2 = "\#" + event.target.id + "";
if ($("#" + event.target.id).is($firstcase))
{
$("#" + event.target.id).css("background-color", "pink");
$i = 0;
$firstcase = "";
return;
}
else
{
$(".blackcase").css("background-color", "white");
$i = 1;
$firstcase = "";
return false;
}
});
return false;
});
});
JSFIDDLE:https://jsfiddle.net/12gwq95u/3/
答案 0 :(得分:5)
如果您有单个事件处理程序并将最后单击的id存储在单击处理程序之外的变量中,则可以大规模简化逻辑。试试这个:
var lastClicked = '';
$(".blackcase").click(function(e) {
e.preventDefault();
$('.blackcase').removeClass('red pink');
$(this).addClass(lastClicked != this.id ? 'red' : 'pink');
lastClicked = this.id;
});