...至少对我来说。此代码 用过的 工作正常。我很确定什么都没有改变,但是现在突然之间,它的行为奇怪。基本上,我正在尝试创建内联编辑功能。当用户单击该链接时,它会动态生成文本框以及确认并取消链接。我在取消链接时遇到问题,没有删除单元格中的所有内容。

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的“实时”功能是什么?它有效吗(大概是这样)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top