第一次单击在jquery中不起作用

时间:2013-10-09 13:45:19

标签: javascript jquery onclick click element

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

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

2 个答案:

答案 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(){}

适合我。