Pregunta

ok, aquí está el código completo con las correcciones ortográficas y todo. Todavía recibo un error.

El

código para padre es:

$("#leftNav").accordion({autoHeight: true});

<div id="leftNav">    <h3><a href="#">Client</a></h3>
<div>        static text    </div>
<h3><a href="#">Account Summary</a></h3>
<div>        static text    </div>
<h3><a href="#"> Profile</a></h3>
<div>        static text    </div>
<h3><a href="#">trip</a></h3>
<div>
    <div id="tripHolder">
    </div>
</div>

el código para el iFrame:

$(".bookingClass").click(function(){
     var thisBookingClass = 'bClass='+$(this).attr("id");
           $.ajax({
                type:"POST",
                url:"bookIt.jsp",
                data: thisBookingClass,
                cache:false,
                success: function(msg) {
                    $("#tripHolder",top.document).html(msg);
                    $("#leftNav",top.document).accordion('activate',3);
                 }
           });
});

El error que estoy recibiendo en el error de incendio ahora es

$("#leftNav", top.document).accordion is not a function
¿Fue útil?

Solución

has escrito mal el acordeón en tu código.

EDIT:

Tengo un Demostración de trabajo que funciona en Firefox (probado en IE6 pero falló), solo si el " cliente " El encabezado es el seleccionado actualmente. Puede ver el código agregando / edit a la URL.

Esto parece ser un problema difícil de resolver y desafortunadamente no tengo tiempo para investigarlo más en este momento. Para evitar el error

$("#leftNav", top.document).accordion is not a function

Tuve que agregar una referencia al script jQuery UI a la fuente del iframe.

Parece que el acordeón se vuelve inaccesible desde el interior del iframe, por lo que no estoy seguro. La forma en que puse la activación para trabajar fue muy hacky y básicamente se llamó .accordion () en el #leftNav nuevamente, seguido de .accordion ('activar' , 3); como en el siguiente

$.ajax({
  type:"POST",
  url:"http://jsbin.com/etiju",
  data: {},
  dataType: 'html',
  cache:false,
  success: function(msg) {
    $('#tripHolder',parent.document).html(msg);
    $("#leftNav",parent.document).accordion({ autoHeight:true }).accordion('activate',3);
  }                                
});

observe que también usé parent.document en lugar de top.document ; este último no funcionaba pero normalmente funciona en Firefox.

Espero que te haya llevado un poco más adelante. Puedo volver a este cuando tenga más tiempo.

Otros consejos

¿Podría ser el error tipográfico de acordeón vs acordeón?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top