list delete: first remove the child then dispatch delete event