Сообщается, что это «решение» работает, вероятно, потому, что оно сделает эти объекты видео контейнера доступными для сбора мусора (см. Примечание ниже для обсуждения того, почему delete
не должно иметь значения). В любом случае ваши результаты могут отличаться в зависимости от браузера:
$(container_selector).children().filter("video").each(function(){
this.pause(); // can't hurt
delete this; // @sparkey reports that this did the trick (even though it makes no sense!)
$(this).remove(); // this is probably what actually does the trick
});
$(container_selector).empty();
Примечание: Нет сомнений в том, что ключевое слово delete
указывается только для удаления свойств из объектов (как другие отмечали в комментариях). Запись this
на консоль как до, так и после строки delete this
, приведенной выше, каждый раз показывает один и тот же результат. delete this
ничего не должен делать и ничего не менять. Тем не менее, этот ответ продолжает набирать обороты, и люди сообщают, что пропуск delete this
заставляет его перестать работать. Возможно, есть странность в том, как некоторые движки JS браузеров реализуют delete
, или необычное взаимодействие между браузером delete
и тем, что jQuery делает с this
.
Итак, просто знайте, что если этот ответ решит вашу проблему, то, если он сработает, непонятно, почему это так, и с такой же вероятностью он перестанет работать по любому числу причин.