Откройте панель аккордеона с функцией - PullRequest
0 голосов
/ 26 октября 2009

хорошо, вот полный код с правописанием и прочим. Я все еще получаю сообщение об ошибке.

код для родителя:

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

Ответы [ 2 ]

1 голос
/ 26 октября 2009

вы написали аккордеон неправильно в вашем коде.

EDIT:

У меня есть Рабочая демонстрация , которая работает в Firefox (пробовал в IE6, но не получилось), только если выбран заголовок "client". Вы можете увидеть код, добавив / edit к URL.

Это, кажется, сложная проблема, которую нужно решить, и, к сожалению, у меня нет времени, чтобы разобраться в ней в данный момент. Для предотвращения ошибки

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

Мне пришлось добавить ссылку на скрипт jQuery UI в источник iframe.

Похоже, что аккордеон становится недоступным изнутри iframe, причина, по которой я не уверен. То, как я получил активацию на работу, было очень хакерским и в основном снова вызывало .accordion() на #leftNav, затем .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);
  }                                
});

обратите внимание, что я также использовал parent.document вместо top.document - последний не работал, но обычно работает в Firefox.

Надеюсь, это продвинет вас немного дальше. Я могу вернуться к этому, когда у меня будет больше времени.

1 голос
/ 26 октября 2009

Может ли это быть опечатка аккордеона против аккордеона?

...