機能付きのアコーディオンパネルを開く
-
06-07-2019 - |
質問
okは、スペル修正とすべてを含む完全なコードです。まだエラーが発生します。
親のコードは:
$("#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>
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);
}
});
});
火災のバグに遭遇したエラーは現在
です$("#leftNav", top.document).accordion is not a function
解決
コードのアコーディオンのつづりが間違っています。
編集:
Firefoxで動作する 作業デモ を持っています(IE6で試しましたが、それは失敗しました)、「クライアント」がheaderは現在選択されているものです。 URLに / edit を追加すると、コードを表示できます。
これは解決するのが難しい問題のようであり、残念ながら現時点ではさらに詳しく調べる時間はありません。エラーを防ぐには
$("#leftNav", top.document).accordion is not a function
jQuery UIスクリプトへの参照をiframeのソースに追加する必要がありました。
アコーディオンがiframe内からアクセスできなくなっているようです。これは私にはわかりません。アクティベートを機能させる方法は非常にハック的で、基本的には #leftNav
で .accordion()
と呼ばれ、その後に .accordion( 'activate' 、3);
次のように
$.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);
}
});
top.document
の代わりに parent.document
も使用したことに注意してください-後者は機能しませんでしたが、通常はFirefoxで機能します。
もう少しお役に立てば幸いです。時間があれば、これに戻るかもしれません。
他のヒント
アコーディオンとアコーディオンのタイプミスでしょうか?
所属していません StackOverflow