Поле комбинированного списка Flex странная проблема

Несколько лет спустя, теперь официально существует лучшее решение. Наблюдатели мутации DOM4 являются заменой устаревших событий мутации DOM3. Они в настоящее время реализованы в современных браузерах как MutationObserver (или как префикс WebKitMutationObserver в старых версиях Chrome):

MutationObserver = window.MutationObserver || window.WebKitMutationObserver;

var observer = new MutationObserver(function(mutations, observer) {
    // fired when a mutation occurs
    console.log(mutations, observer);
    // ...
});

// define what element should be observed by the observer
// and what types of mutations trigger the callback
observer.observe(document, {
  subtree: true,
  attributes: true
  //...
});

В этом примере прослушиваются изменения DOM при document и всего его поддерева, и оно будет запускать изменения атрибутов элемента, а также структурные изменения. Черновик спецификации имеет полный список допустимых свойств прослушивателя мутаций :

childList

  • Устанавливается в true, если следует наблюдать мутации у детей-мишеней.

атрибутов

  • Установите на true, если должны наблюдаться мутации в атрибутах цели.

CharacterData

  • Установите на true, если должны наблюдаться мутации в данных цели.

поддерево

  • Установите на true, если нужно наблюдать мутации не только цели, но и потомков цели.

attributeOldValue

  • Устанавливается в true, если для attributes установлено значение true и значение атрибута цели перед записью мутации.

characterDataOldValue

  • Устанавливается в true, если для characterData установлено значение true и данные цели перед записью мутации.

attributeFilter

  • Устанавливается в список локальных имен атрибутов (без пространства имен), если необходимо наблюдать не все мутации атрибутов.

(Этот список действителен по состоянию на апрель 2014 года; вы можете проверить спецификации на наличие изменений.)

1
задан Benjol 23 June 2009 в 11:02
поделиться

1 ответ

Последний selectedIndex вне допустимого диапазона, так как вы используете предварительное увеличение. Это означает, что перед тестом i становится dp1.length, и ему также присваивается selectedIndex. Это могло бы объяснить странное поведение. Возможно, вы захотите использовать пост-инкремент.

Также. Единственное, что выполняется в этом while, похоже,

cmb.selectedIndex = ++i;

Я не знаю, что вы хотели, но вам может понадобиться там "{}".

2
ответ дан 3 September 2019 в 01:16
поделиться
Другие вопросы по тегам:

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