Usando jQuery 1.7.1, intento crear un controlador de eventos para el evento de cambio en un menú desplegable. El menú desplegable se agrega dinámicamente al DOM. Parece funcionar bien en la mayoría de los navegadores, pero oh, ese cursi IE8 quiere ser difícil. ¿Hay alguna solución? ¿Debería funcionar? Estoy leyendo mucho aquí y en otros lugares, y la información parece ser contradictoria en muchos casos, y las soluciones propuestas que he encontrado/probado no me han funcionado.jQuery on() cambio en IE8
¿Alguien puede aclarar si esto debería funcionar en IE8 para .state-seletor
desplegables que se crean sobre la marcha?
$(document).on('change', '.state-selector', function(e) {
e.preventDefault();
alert('ON()');
});
Voy a seguir hurgando, pero si alguien puede aclarar esto antes de que pierda mi mente, lo agradecería.
Gracias.
ACTUALIZACIÓN
En @ petición de Wertisdk a continuación, aquí es mi desplegable fragmento:
<select name="data[Contractor][service_area_state]" class="state-selector">
<option value="">Select a state...</option>
<option value="AK">Alaska</option>
<option value="AL">Alabama</option>
...
<option value="WI">Wisconsin</option>
<option value="WV">West Virginia</option>
<option value="WY">Wyoming</option>
</select>
ACTUALIZACIÓN 2
A punto de @ mblase75, tal vez el método utilizado para generar la dinámica la lista desplegable importa Básicamente, estoy clonando un nodo DOM existente y vaciando el valor que se seleccionó allí. Cabe señalar que el .additionalink a
también se genera dinámicamente. Al hacer clic en un .addtionallink a
, la plantilla se va a clonar incluye un nuevo nodo .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);
});
ACTUALIZACIÓN 3
Aquí hay una JSFiddle similares. Es casi mi código, pero hay una diferencia clave que puede ser toda la diferencia. Este violín usa .append()
para insertar contenido nuevo según la selección de estado. Mi código usa el método .load()
. De lo contrario, es todo lo mismo.
Se puede publicar un fragmento del HTML, el jQuery va a ¿interactuar con? Puede ser específico del elemento html al que se dirige. – Wertisdk
Espero esta respuesta. Tengo el mismo problema. –
@Wertisdk, he actualizado mi pregunta anterior. No estoy seguro de lo útil que es, pero pregunte y recibirá (a veces). :-) –