Используя 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 ()
. В остальном все равно.