Ouvrir un panneau d'accordéon avec une fonction
-
06-07-2019 - |
Question
ok voici le code complet avec les corrections orthographiques et tout le reste. Je reçois toujours une erreur.
Le codepour 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
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?