развязывание jQuery - это необходимый? (замена элементов)

Прежде maxSize = std::max(maxSize, i-start+1); необходимо удостовериться, что размер карты точно k - Вы никогда не можете достигать k, но текущий код instanly обновления maxSize.

Также помнят start значение в собственном max код

    if (map.size() == k) 
        if (i - start + 1 > maxSize) {
            maxSize = i - start + 1;
            astart = start;
        }
...
return {astart, maxSize};

проверка Ideone

9
задан Jourkey 6 September 2009 в 23:20
поделиться

3 ответа

Нет, этого делать не нужно (отмена привязки события выполняется автоматически при удалении).

17
ответ дан 4 December 2019 в 08:33
поделиться

Нет, это не вызовет никаких проблем (если только у кого-то не возникнет неприятный опыт, которым они хотели бы поделиться :) Мои деньги идут на «это не имеет значения!».

Единственное исключение, о котором я могу думать, - это если вы выполняете какую-либо привязку к живому событию в ситуации, когда вы не хотите, чтобы вновь вставленные элементы получали те же обработчики событий элементов, которые вы ранее удалили из DOM. Тогда было бы неплохо отвязать любые (живые) обработчики событий перед удалением из DOM, при этом вы можете сделать это на любом этапе, и не обязательно до удаления.

1
ответ дан 4 December 2019 в 08:33
поделиться

Единственный раз, когда вы если бы вам больше не нужен обработчик событий для события на странице, нужно было бы явно отменить привязку.

Удаление элемента из модели DOM приводит к удалению событий и данных для этого элемента. Вот соответствующий исходный код

remove: function( selector ) {
    if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
        // Prevent memory leaks
        jQuery( "*", this ).add([this]).each(function(){
            jQuery.event.remove(this);
            jQuery.removeData(this);
        });
        if (this.parentNode)
            this.parentNode.removeChild( this );
    }
} 
7
ответ дан 4 December 2019 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: