2

我会保持简短,考虑这一行:

$record.fadeOut(250);

如下所示的表格行在哪里$record

<tr id="5194c885eb9fbf38aa000026" class="record">
   <td>Test</td>
   <td>2013/05/16 - 13:52</td>
   <td>2013/05/16 - 13:52</td>
   <td class="recordActions">
       <a title="Edit" href="/2configure/templates/devicetypes/5194c885eb9fbf38aa000026/edit" class="edit">
           <img src="/icons/document--pencil.png" alt="edit">
       </a>
       <a title="Delete" href="/2configure/templates/devicetypes/5194c885eb9fbf38aa000026" class="delete">
           <img src="/icons/cross.png" alt="delete">
       </a>
   </td>
</tr>

我绝对确定$record包含此元素,仅此而已。

没有应用 CSS。之后.fadeOut(250),结果是:

<tr id="5194c885eb9fbf38aa000026" class="record" style="opacity: 1">
    ...
</tr>

是什么赋予了?!?

jQuery版本1.7.1

编辑:全功能

function onEntityUpdateSuccess(record_html, statusText, jqXhr, jqForm) {
    var $record = $(".record#" + jqForm.find('input[name="id"]').val());
    var $listingContainer = $record.parents(".listingContainer");
    if(!$listingContainer.is(":visible")) {
         $listingContainer.slideDown(250);
    }

    $record.animate({opacity:0}, 250);
    $record.replaceWith(record_html);
    $record.animate({opacity:0}, 250);
    //$record.fadeIn(1000);
}

更新

Aioros发现了这个问题:

$record.replaceWith(record_html);

是罪魁祸首。但是为什么第二个动画也不起作用呢?如何替换 HTML 并使其保持褪色?

4

2 回答 2

3

正如我在评论中所说,从 DOM.replaceWith()中删除$record元素,所以第二个.animate()没有可见的效果。您将不得不重新分配变量,或再次使用选择器。

function onEntityUpdateSuccess(record_html, statusText, jqXhr, jqForm) {
    var $record = $(".record#" + jqForm.find('input[name="id"]').val());
    var $listingContainer = $record.parents(".listingContainer");
    if(!$listingContainer.is(":visible")) {
         $listingContainer.slideDown(250);
    }

    $record.animate({opacity:0}, 250);
    $record.replaceWith(record_html);

    $record = $(".record#" + jqForm.find('input[name="id"]').val());
    /* or whatever the selector needs to be */

    $record.animate({opacity:0}, 250);
    //$record.fadeIn(1000);
}
于 2013-05-16T15:34:43.623 回答
2

您是否希望将不透明度设置为 0?我会感谢fadeOut 将不透明度设置为0,但是唉,这里有几个不同的选项。

$record.animate({opacity:0});
$record.fadeTo('slow', 0);
于 2013-05-16T15:14:16.880 回答