Yo estoy corriendo esto script de muestra con IE:
var $select = $("#select");
var $button = $("#button");
$button.click(function() {
var $option = $("<option />");
$option.text("hello");
$option.appendTo($select);
});
var $tabs = $("#tabs");
$tabs.tabs();
Es bastante sencillo: al hacer clic en el botón, un option
debería agregarse a mi menú desplegable. Esto funciona muy bien: el fct básico en IE tampoco.
Mi problema:
simplemente "abra" el menú desplegable y "vuelva a cerrarlo". Ahora cambie a la pestaña "botón" y presione el botón. Ahora cambie a la pestaña "seleccionar" - un nuevo option
Deberia estar disponible.
Esto funciona muy bien en todos los navegadores, excepto IE ... (a veces IE falla después de varios cambios de tabulación)
¿Cómo puedo arreglar mi script?
Respuestas
3 para la respuesta № 1Hay una manera mucho más simple y más amigable para los navegadores de agregar opciones para seleccionar cuadros que agregar option
Elementos DOM (ejemplo vivo)
$button.click(function() {
var option = new Option("hello");
$select[0].options.add(option);
});
Quizás eso funcionaría de manera más confiable para usted. (Tenga en cuenta que es "s add
, no push
. los options
objeto en select
los elementos no son realmente una matriz)
En lugar de options.add
También puedes hacer:
$button.click(function() {
var options = $select[0].options,
option = new Option("hello");
options[options.length] = option;
});
... que también se suma al final, en forma de matriz. Pero add
es confiable navegador cruzado.