我正在尝试制作座位图。所有座位都是元素。我点击第一个座位然后点击另一个座位。第二个改变了它的颜色,但第一个不起作用。为什么?
function seatObject(id, label, status, token){
this.id = id;
this.label = label;
this.status = status;
this.token = token;
}
var seats = [];
var currentSeat;
function initAll() {
$(".seatObj").each(function() {
var id = $(this).attr("id");
var temp = new seatObject("#" + id, "label" + id, "available", "");
seats[id] = temp;
$("#" + id).click(function () {
currentSeat = $(this).attr("id");
if (seats[currentSeat].status == "selected")
{
dequeueSeat();
}
else
{
enqueueSeat();
//alert($(this).attr("inkscape:label"));
}
});
});
}
答案 0 :(得分:0)
你的代码老兄没问题......
你需要做些什么改变......
普通Click不会为一个或多个事件附加事件处理函数。因此,使用on
方法 - 将一个或多个事件的事件处理函数附加到所选元素。
$(".seatObj").on('click',"#" + id, function () {
currentSeat = $(this).attr("id");
if (seats[currentSeat].status == "selected")
{
dequeueSeat();
}
else
{
enqueueSeat();
//alert($(this).attr("inkscape:label"));
}
});
您可以在on
方法中使用class而不是id。
答案 1 :(得分:0)
尝试将函数包装在$(document).ready(function(){}
中适合我。