-1

クリックすると、以下の最初のイベントをトリガーする編集ボタンがあります。それ(編集フォーム)にはキャンセルリンクもあり、クリックすると以下の2番目のイベントがトリガーされます。PrevContentキャンセルイベント内で値にアクセスできるようにするにはどうすればよいですか?ユーザーは、対応する編集リンクを一度にいくつでもクリックできます。

$('.js-profile-edit').live('click',function(){

    var TrBlock     = $(this).closest('tr');
    var PrevContent = TrBlock.html();
    var colspan     = TrBlock.parent().prev().find('a:first').first().data('span');

    $.ajax({
        url     : $(this).attr('href'),
        type    : 'GET',
        success : function(response){
            TrBlock.html('<td colspan="'+colspan+'">'+response+'</td>');
        },
        error    : function(jqXHR, textStatus, errorThrown){
            uiAlert({message : 'Something Broke. Try again later'})
        }
    });
    return false;
});


$('.js-profile-edit-cancel').live('click',function(){
    $(this).closest('tr').html(PrevContent);
    return false;
});
4

2 に答える 2

1

キャンセルボタンPrevContentデータオブジェクトにを詰め込むことができるかもしれません。

js-profile-editクリックハンドラーで書き込みます。

$('.js-profile-edit-cancel').data('PrevContent', PrevContent);

js-profile-edit-cancelクリックハンドラーで読み取ります。

var PrevContent = $(this).data('PrevContent');
于 2012-06-01T19:08:18.977 に答える
0

あなたは最も近いprevContentものとしてを保存することができるはずです:.data()<tr>

$('.js-profile-edit').live('click',function(){

    var TrBlock     = $(this).closest('tr');
    var PrevContent = TrBlock.html();
    TrBlock.data({contents: PrevContent});  // save it
    ...
})

$('.js-profile-edit-cancel').live('click',function() {
    var TrBlock = $(this).closest('tr');
    TrBlock.html(TrBlock.data('contents'));
    return false;
});
于 2012-06-01T19:08:55.820 に答える