0

我正在尝试制作座位图。所有座位都是元素。我单击第一个座位,然后单击另一个座位。第二个改变了它的颜色,但第一个不工作。为什么?

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"));                     
            }
        });
    }); 
}
4

2 回答 2

0

你的代码没问题,伙计......

你需要一点点改变...

普通点击不会为一个或多个事件附加事件处理函数。所以使用on方法 - 将一个或多个事件的事件处理函数附加到所选元素。

$(".seatObj").on('click',"#" + id, function () {
        currentSeat = $(this).attr("id");
        if (seats[currentSeat].status == "selected")
        {
            dequeueSeat();
        }
        else
        {
            enqueueSeat();   
            //alert($(this).attr("inkscape:label"));                     
        }
});

您可以在方法中使用 class 而不是 id on

于 2013-10-09T14:09:55.403 回答
0

尝试将函数包装在 $( document ).ready(function() {}

为我工作。

于 2014-06-22T02:49:11.203 回答