Вопрос

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

код для родительского элемента - это :

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

Ошибка, которую я получаю в fire bug, теперь

$("#leftNav", top.document).accordion is not a function
Это было полезно?

Решение

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

Редактировать:

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

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

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

Мне пришлось добавить ссылку на скрипт пользовательского интерфейса jQuery в исходный код 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.

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top