Öffnen Sie ein Akkordeon-Panel mit einer Funktion
-
06-07-2019 - |
Frage
ok hier ist der vollständige Code mit den Rechtschreibkorrekturen und allem. Ich bin immer noch einen Fehler.
Code für Eltern ist:
$("#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>
der Code für den 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);
}
});
});
Der Fehler, den ich in Feuer Bug bin immer ist jetzt
$("#leftNav", top.document).accordion is not a function
Lösung
Sie Akkordeon geschrieben habe falsch in Ihrem Code.
EDIT:
Ich habe ein Working Demo , die in Firefox (versucht, in IE6 funktioniert, aber es nicht), nur dann, wenn der „Client“ Header die aktuell ausgewählt ist. Sie können den Code sehen durch Zugabe von / bearbeiten an die URL.
Dies scheint ein schwieriges Problem zu lösen zu sein und ich habe leider nicht die Zeit, sich in sie weiter im Moment. Um den Fehler zu verhindern
$("#leftNav", top.document).accordion is not a function
ich einen Verweis auf den jQuery UI-Skript an die Quelle des iframe hinzuzufügen hatte.
Es scheint, dass das Akkordeon aus dem Innern des iframe nicht mehr zugänglich ist, bin der Grund, warum ich nicht sicher. Die Art und Weise, dass ich die activate zur Arbeit bekam, war sehr hacky und im Grunde .accordion()
auf dem #leftNav
wieder, gefolgt von .accordion('activate',3);
wie in dem folgenden
$.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);
}
});
Beachten Sie, dass ich auch parent.document
statt top.document
verwendet -. Letzteres nicht funktioniert aber normalerweise der Fall ist in Firefox
Ich hoffe, es hat Ihnen zusammen ein wenig weiter. Ich kann auf diese zurückkommen, wenn ich mehr Zeit habe.
Andere Tipps
Könnte es den Tippfehler von Akkordeon vs accordian sein?