1
var undoButton = $('<input type="button" id="undoBtn" value="UndoSelection">').addClass('button');
        $(windowContainer).append(undoButton);
        $(undoButton).click(function(){
            var seat = $('<img/>',{src:'gfx/seat.png'});
            var seatYellow = $('<img/>',{src:'gfx/seat_yellow.png'});
            if(($('td').hasClass('p')) && ($('td').hasClass('picked'))){  
                **$(this).html(seatYellow);**                                   
            } else if (($('td').hasClass('n')) && ($('td').hasClass('picked'))){
                **$(this).html(seat);**
            }

        })

$(this).html(seatYellow)$(this).html(seat)不工作。(this)当我用 if 语句的('td')第一部分替换单词时,很明显,因为它返回 true。然而,这不是我想要的。我希望将特定的 td 元素替换为seator seatYellow,这就是我使用的(this)原因。由于某种原因,它不起作用。有任何想法吗?先感谢您。

4

2 回答 2

0

试试这个:

$(windowContainer).on('click', undoButton, function() {

或者这样:

$(windowContainer).on('click', '.button', function() {

delegate the event to document

$(document).on('click', undoButton, function() {

或这个:

$(document).on('click', '.button', function() {
于 2013-02-27T11:34:08.703 回答
0

考虑一下您要将带有图像数据的 html 应用到哪里。目前,您正尝试将图像添加到值为 undoButton 的输入标记中。

您需要记住对要添加座位的元素的引用。

var el = $(this);
var undoButton = $('<input type="button" id="undoBtn" value="UndoSelection">').addClass('button');
$(windowContainer).append(undoButton);
$(undoButton).click(function(){
    var seat = $('<img/>',{src:'gfx/seat.png'});
    var seatYellow = $('<img/>',{src:'gfx/seat_yellow.png'});

    if(($('td').hasClass('p')) && ($('td').hasClass('picked'))){  
        el.html(seatYellow);                                 
    } else if (($('td').hasClass('n')) && ($('td').hasClass('picked'))){
        el.html(seat);
    }
});

最好将类应用到当前座位并将图像设置为背景图像,具体取决于它是普通座位还是黄色座位。

于 2013-02-27T11:58:28.077 回答