题
...至少对我来说。此代码 用过的 工作正常。我很确定什么都没有改变,但是现在突然之间,它的行为奇怪。基本上,我正在尝试创建内联编辑功能。当用户单击该链接时,它会动态生成文本框以及确认并取消链接。我在取消链接时遇到问题,没有删除单元格中的所有内容。
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();
}
但是,由于某种原因,单击后,取消链接仍保留!除此之外,其他所有内容都将被删除。 WTF
感谢您提供的任何见解!我敢肯定,这只是一些愚蠢的小细节,我已经结束了[咖啡因] ...
更新 发布此信息后,我立即表明这可能是CSS问题,但是在仔细检查我的代码后,事实并非如此。
解决方案
您需要在这里进行一些调整:
$('.bid a:not(.cancel)').live('click', renderBidChange);
自从您搬到 .live()
, ,第一个功能还可以单击“取消”运行:)
其他提示
如果您更改会发生什么:
$('.report_table .cancel').live('click', cancelUpdate);
至
$('.bid .cancel').live('click', cancelUpdate);
我不希望解决方案,但我只是在努力研究
.Accept的“实时”功能是什么?它有效吗(大概是这样)
不隶属于 StackOverflow