touchstart と touchend イベントで記述した親 div があります。親を完全にカバーする子があります。タッチスタートで、子を削除して別の子を追加します。この場合、touchend イベントは発生しません。この場合、同じマウス イベント (mousedonw/mouseup) がうまく機能しています。
これがjsfiddleです。
デバイス(iPad、Android)では、ユーザーが要素に触れ始めたときではなく、マウスアップの直前にマウスダウンイベントが実際に呼び出されるため、マウスイベントを使用できません。