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)動作しません。if ステートメントの最初の部分で単語を置き換える(this)('td')、true が返されるため、明らかなことが機能します。しかし、それは私が望むものではありません。seat特定の td 要素をorに置き換えたいので、 .ForseatYellowを使用します(this)。何らかの理由で機能しません。何か案は?前もって感謝します。

4

2 に答える 2

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 に答える
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 に答える