Question

ok voici le code complet avec les corrections orthographiques et tout le reste. Je reçois toujours une erreur.

Le code

pour le parent est:

$("#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>

le code de l'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);
                 }
           });
});

L'erreur liée au bogue d'incendie est maintenant

.
$("#leftNav", top.document).accordion is not a function
Était-ce utile?

La solution

vous avez mal orthographié l'accordéon dans votre code.

EDIT:

J'ai un démonstration de travail qui fonctionne dans Firefox (essayé dans IE6 mais il a échoué), uniquement si le "client" l'en-tête est celui actuellement sélectionné. Vous pouvez voir le code en ajoutant / edit à l'URL.

Cela semble être un problème délicat à résoudre et, malheureusement, je n’ai pas le temps de l’étudier davantage pour le moment. Pour éviter l'erreur

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

J'ai dû ajouter une référence au script jQuery UI à la source de l'iframe.

Il semblerait que l'accordéon devienne inaccessible de l'intérieur de l'iframe, ce qui fait que je ne suis pas sûr. La façon dont j'ai activé l'activation au travail a été très bidirectionnelle et s'appelle à nouveau .accordion () sur #leftNav , suivie de .accordion ('activer' , 3); comme ci-dessous

$.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);
  }                                
});

remarquez que j'ai également utilisé parent.document au lieu de top.document - ce dernier ne fonctionnait pas mais fonctionne normalement dans Firefox.

J'espère que cela vous a amené un peu plus loin. Je reviendrai sur celui-ci quand j'aurai plus de temps.

Autres conseils

Serait-ce la faute de frappe accordéon vs accordéon?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top