......至少对我而言。此代码使用正常工作。我很确定没有任何改变,但现在突然间它表现得很奇怪。基本上我正在尝试创建内联编辑功能。当用户点击链接时,它会动态生成文本框以及确认和取消链接。我遇到了取消链接的问题,没有删除单元格中的所有内容。
HTML:
...
<td class="bid">
<a href="javascript:" class="102093" title="Click to modify bid">$0.45</a>
</td>
...
绑定jQuery(在$(function())
中):
$('.bid a').live('click', renderBidChange);
....
$('.report_table .cancel').live('click', cancelUpdate);
renderBidChange
(此函数创建动态元素):
function renderBidChange(){
var cpc = $(this);
var value = cpc.text().replace('$', '');
var cell = cpc.parent('.bid');
cpc.hide();
var input = document.createElement('input');
$(input).attr({type:'text',class:'dynamic cpc-input'}).val(value);
cell.append(input);
var accept = document.createElement('a');
$(accept).addClass('accept').attr({'href':'javascript:',
'title':'Accept Changes'}).text('Accept Changes');
cell.append(accept);
var cancel = document.createElement('a');
$(cancel).addClass('cancel').attr({'href':'javascript:',
'title':'Cancel Changes'}).text('Cancel Changes');
cell.append(cancel);
$(input).focus();
input.select();
}
cancelUpdate
这个函数只删除了单元格中可见的所有内容(在这种情况下是所有动态垃圾),并显示了那里的内容。
function cancelUpdate(){
var cell = $(this).parent();
cell.find(':visible').remove();
cell.find(':hidden').show();
}
但是,出于某种原因,点击后取消链接仍然存在!除此之外,其他所有内容都被删除。 W T F
感谢您提供的任何见解!我确定这只是一些愚蠢的小细节我已经过了[含咖啡因]看...
更新发布此消息后,我立刻认为它可能是一个CSS问题,但在仔细检查我的代码后,却没有。
答案 0 :(得分:4)
你需要稍微调整一下:
$('.bid a:not(.cancel)').live('click', renderBidChange);
由于您已移至.live()
,因此第一个功能也会在点击取消时运行:)
答案 1 :(得分:0)
如果你改变会发生什么:
$('.report_table .cancel').live('click', cancelUpdate);
到
$('.bid .cancel').live('click', cancelUpdate);
我不期待一个解决方案,但我只是双重检查
.accept的“实时”功能是什么?它是否有效(大概是这样)