我有一个编辑按钮,点击后会触发下面的第一个事件。它(编辑表单)也有一个取消链接,当点击它时,触发下面的第二个事件。如何确保在取消事件中可以访问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;
});
答案 0 :(得分:1)
也许您可以将PrevContent
填入取消按钮的data object。
写入js-profile-edit
点击处理程序:
$('.js-profile-edit-cancel').data('PrevContent', PrevContent);
并阅读js-profile-edit-cancel
点击处理程序:
var PrevContent = $(this).data('PrevContent');
答案 1 :(得分: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;
});