0

私はこのコードをここに持っています。これは、幅0にフェードアウト/アミノ化してから、いくつかの要素を削除()することになっています。しかし、何らかの理由で remove() が機能していません。

$('#submitUsage').click(function(){
  var bahoooga = $('#inputUsage').val().replace(/\D/g,'');
  var bahoooga = bahoooga + " KWh";
  $(this).parent().parent().children('td:nth-child(2)').html(bahoooga);
  $('#editData td:last-child, #editData th:last-child').animate({
    width: '40px'
  }, 1500);
  $('#inputUsage').animate({
    width: '0px',
    opacity: '0'
  }, 1000);
  $('#cancelUsage, #submitUsage').fadeOut(1000);
  $('#inputUsage, #cancelUsage, #submitUsage').remove();
});

setTimeout() 関数内に remove() がありましたが、これは私が望んでいるものですが、それも機能していませんでした。

4

2 に答える 2

1

次のようにチェーンしてみてください。

$('#inputUsage').animate({
    width: '0px',
    opacity: '0'
}, 1000).promise().done(function(){
  $('#cancelUsage, #submitUsage').fadeOut(1000, function(){
     $('#inputUsage, #cancelUsage, #submitUsage').remove();
  });
});
于 2013-02-19T17:23:32.050 に答える
0

アニメーションが終了したら、要素のみを削除する必要があります。それらすべてを実行して、それらが正確に同時に終了すると想定することはできません(両方とも1000ミリ秒であっても)。

target.fadeOut(300, function(){ $(this).remove();});

あなたにとってそれは次のようになります:

$('#inputUsage').animate({
  width: '0px',
  opacity: '0'
  }, 1000).promise().done(function() { $(this).remove(); });

$('#cancelUsage, #submitUsage').fadeOut(1000, function() { $(this).remove(); });
于 2013-02-19T17:28:22.157 に答える