jQuery on () change в IE8

Используя jQuery 1.7.1, я пытаюсь создать обработчик событий для события изменения в раскрывающемся списке. Выпадающий список динамически добавляется в DOM. Кажется, отлично работает в большинстве браузеров, но, ох, этот странный IE8 хочет быть сложным. Есть ли обходной путь? Следует ли это работать? Я много читаю здесь и в других местах, и во многих случаях вводимые данные кажутся противоречивыми, а предлагаемые решения, которые я нашел / попробовал, у меня не сработали.

Может ли кто-нибудь уточнить, должно ли это работать в IE8 для .state-seletor выпадающих списков, которые создаются на лету?

$( document ).on( 'change', '.state-selector', function( e ) {
  e.preventDefault();
  alert( 'ON()' );
});

Я буду копаться, но может ли кто-нибудь прояснить это, прежде чем я схожу с ума, я был бы признателен.

Спасибо.

ОБНОВЛЕНИЕ

По запросу @ Wertisdk ниже, вот мой выпадающий фрагмент:


ОБНОВЛЕНИЕ 2

Для точки @ mblase75, возможно, имеет значение метод, используемый для генерации динамического раскрывающегося списка. По сути, я клонирую существующий узел DOM и очищаю выбранное там значение. Следует отметить, что дополнительная ссылка . A также генерируется динамически. Когда вы щелкаете .addtionallink a , клонируемый шаблон включает новый узел .addtionallink a :

$( document ).on( 'click', '.additionallink a', function( e ) {
  e.preventDefault();

  var copy = $( this ).closest( '.template' ).clone();

  // Massage the template copy's content and insert it
  // - Clear the value selected in the original dropdown
  // - Clear the list of counties loaded based on the original dropdown selection
  $( '.state-selector', copy ).val( $( '.state-selector option:first', copy ).val() );
  $( '.counties', copy ).empty();
  $( this ).closest( '.template' ).after( copy );
});

UPDATE 3

Вот похожий JSFiddle . Это почти мой код, но есть одно ключевое отличие, которое может быть решающим.Эта скрипка использует .append () для вставки нового содержимого на основе выбора состояния. В моем коде используется метод .load () . В остальном все равно.

7
задан Rob Wilkerson 17 February 2012 в 14:54
поделиться