2010-02-04 15 views
7

Estoy intentando crear un plugin de transferencia de opciones para jQuery.jQuery error? .appendTo() no funciona en IE7

Tengo la funcionalidad básica que funciona en opera, firefox, cromo & safari pero IE7 no coopera.

Las funciones de transferencia en IE7 parecen funcionar de forma muy esporádica e incomprensible.

He creado an example page to illustrate my problem.

¿Alguien puede ver dónde me estoy equivocando?

Gracias,

+0

Ni idea de lo que el origen del problema es, pero se replicó. Impar. –

+0

Es más probable que sea un error de IE 7 ...;) – jamone

+0

jeje, usted dice que ... Intercambio en diferentes versiones jQuery produce diferentes "efectos". : p – Mike

Respuesta

6

Esto no se parece a un .appendTo() - error-in-jQuery tanto como a un IE7-tiene-superfunky-select-box-behavior problema. Esta solución parece hacer que se comporte:

.parent() 
.click(function() {  
    $selectBox1.find('option:selected') 
       .appendTo($selectBox2.find('select')); 
    $selectBox1.html($selectBox1.html()); 
    $selectBox2.html($selectBox2.html());        
    sortBox($selectBox2); 
    }) 

Reconstruir el HTML de cada cuadro de selección después de la appendTo() obliga IE para actualizar su estado.

JSbin: http://jsbin.com/opome3/4 (fija con .clone (verdadero) para el primer botón.)

+0

Gracias por eso. Podría ser que lo haya visto demasiado tiempo, pero por alguna razón el último botón (movimiento seleccionado de 2 -> 1) no parece funcionar en Chrome, Firefox, Opera o Safari, en su ejemplo. – Mike

+0

Necesita agregar .clone (verdadero) para el primer botón. – jkyle

+0

Eres una estrella, gracias amigo. – Mike

1

Recibo un error en decir:

Línea: 16 de error: 'no definido' es nulo o no un objeto

que apunta a este:

j=l.replace(/^[\-\d\.]+/,"") 

Supongo que debe probar nulo? Solo una suposición.

+2

Esto no parece suceder si carga el archivo localmente. Tome la fuente y cree su propio archivo html. Creo que esto es un error con jsbin? – Mike

+1

El error proviene del script "edit.js", no de su código. – Pointy