jquery исчезнуть, удалить, затем следующий шаг - PullRequest
2 голосов
/ 07 января 2010

У меня есть стол, и я хочу затемните ряд, затем удалите его (который работает нормально)

после его удаления я суммирую все столбцы и обновляю итоги этот бит не работает. оно суммируется до удаления строки

как мне сделать это синхронно?

$("#tr_invoice_" + id).fadeOut("slow", function() { 
  $("#tr_invoice_" + id).remove();      
  tot = $("[name^=amount]").sum(); 
  confirm("got tot: " + tot);                           
});

После прочтения комментария @pulses, я пошел и изменил все вокруг и вручную удалил количество «удаленных строк» ​​из суммы, но это стало давать в общей сложности менее 2 х текущей суммы строк.

Так что я вернул его обратно и изменил подтверждение на $ ("# tag"). Html (tot). и он начал работать нормально, так что я не уверен, было ли это синтаксической ошибкой с моей стороны или подтверждение имело к этому какое-то отношение, но в любом случае это работает сейчас

Итак, в свете этого, я должен удалить этот вопрос или оставить как есть?

Ответы [ 4 ]

1 голос
/ 18 января 2010

Если следующий код все еще возвращает ту же сумму, вы определенно добавляете элемент мошенника, как предложено DR.

tot = $("[name^=amount]").not('#' + $(this).attr('id')).sum();
1 голос
/ 07 января 2010

Попробуйте выставить задержку после удаления:

$("#tr_invoice_" + id).fadeOut("slow", function() { 
  $("#tr_invoice_" + id).remove();      
  setTimeout(function(){
     tot = $("[name^=amount]").sum(); 
     confirm("got tot: " + tot);                           
  },100);
});
1 голос
/ 15 января 2010

Измените это на

$("#tr_invoice_" + id).fadeOut("slow", function() { 
  $("#tr_invoice_" + id).remove(function(){
    tot = $("[name^=amount]").sum(); 
    confirm("got tot: " + tot);
  });
});
0 голосов
/ 07 января 2010

Ваш код кажется правильным, насколько я могу судить по выписке, которую вы разместили:

Вы удаляете элемент после анимации, затем повторно запрашиваете все необходимые элементы и суммируете их.

Единственное объяснение состоит в том, что элемент не удален, и он все равно каким-то образом перехватывается вашим запросом. Попробуйте использовать Firebug, чтобы подтвердить, что элемент действительно удален.

Дополнительно попробуйте сделать $("[name^=amount]") немного более точным. В настоящее время он может соответствовать целому множеству узлов, возможно, даже за пределами вашей таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...