質問

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で機能します。

もう少しお役に立てば幸いです。時間があれば、これに戻るかもしれません。

他のヒント

アコーディオンとアコーディオンのタイプミスでしょうか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top