2011-12-21 1 views
1

Я использую JQuery 1.6 и последние tablesorter (sorttable), которые я могу найти. У меня есть одна страница, которая делаетJQuery и tablesorter на Firefox 3.5

$("div#child_container").load(child_url);

где страница ссылается «child_url» имеет sorttable в нем.

В FireFox 8 это работает так, как вы надеетесь. У меня есть сортируемый стол, встроенный в div.

В FireFox 3.5 это не работает. Заголовки столбцов не доступны для просмотра. Это простой текст. Стиль зебры тоже не происходит, и это не первоначальный вид. Запуск FireBug показывает, что он загружает child_url (он загружает таблицу данных, поэтому это подтверждается) и загружает файл sorttable.js. Ошибок нет. Любые предупреждения связаны с CSS.

Я могу загрузить child_url на FireFox 3.5, и он будет работать точно так, как вы ожидали, поэтому это, по-видимому, не является проблемой tablesorter. Кажется, что проблема заключается в выполнении JQuery .load() для включения страницы, использующей tablesorter.

Я открыт для предложений о том, как действовать. Кроме того, что просто сказал: «Извините, но ваш браузер слишком старый и разорен».

Редактировать: Я перешел на jquery.tablesorter.js. Тот же вопрос.

Edit: я мод моей child_url страницы так, чтобы она не обеспечивала доктайп, головы и т.д. Это просто предоставившие и <script> блока <table>, который назвал бы $("#tablediv").tablesorter(...) на него. Я продвигал загрузку файла .js на родительскую страницу. Это неверно, тождественно, на 3.5 и 8.0. У меня была ошибка javascript на вызове .tablesorter(), которого у меня никогда не было.

+0

Учитывая тот факт, что вы включаете в документ новые элементы ... возможно, FF 3.5 не может обрабатывать более одного типа doctype и head, введенного в основной документ (моя догадка). Таким образом, вы можете сделать что-то вроде *** $ («div # child_container»). Load («child_url #some_id_with_table_within»); *** как указано в документации JQuery, поэтому вы загружаете только соответствующий фрагмент ... также, вы 'нужно включать скрипты и вызов css в этот фрагмент. – Alfabravo

+0

Похоже, вы используете sorttable.js от kryogenix.org. Вы можете попробовать перейти на jQuery-based tablesorter.js из tablesorter.com. Мы используем его на Firefox 3.6. –

+0

Vik David - изменил мой код, чтобы использовать jquery.tablesorter.js, как найдено на tablesorter.com. Та же проблема. По-видимому, они разделяют эту проблему. – Meower68

ответ

0

Прежде всего, если есть способ кредитовать Альфабраво, я бы сделал это. Хотя его комментарий не полностью разрешил проблему, он поставил меня на правильный путь.

Я убрал страницу child_url так, чтобы она ТОЛЬКО предоставляла <table>. Я потянул jquery.tablesorter.js до родительской страницы. Мне нужна родительская страница для выполнения .tablesorter() на столе.

$("div#pending").load(
    "pending.jsp", 
    function() { 
     $("table#pending_records").tablesorter({ 
      sortList: [[4, 0]], 
      widgets: ["zebra"] 
     }); 
    } 
); 

JQuery.load() позволяет указать URL-адрес для загрузки и обратного вызова для выполнения, когда он полностью загружен. Это был секретный соус, необходимый для преодоления ошибки Javascript, упомянутой в моем втором редактировании.

С другой стороны: я фактически загружал два сортируемых таблицы в две разные вкладки, используя jquery.ui.tabs.js. Вторая вкладка тоже не вела себя. Это потому, что sorttable не работает, если он находится в блоке, который равен display: none. Когда страница загружена:

  • содержимое первой вкладки были видны, так что содержание там оказывается правильно
  • были скрыты содержимое второй лапкой, поэтому она была загрузка содержание, но .sorttable() не выполняется, так он не отобразился должным образом

Я смог использовать хак, упомянутый на странице документа JQuery.load(), чтобы обойти это.В основном, настроить таблицу стилей, так что вместо того, чтобы:

.ui-tabs .ui-tabs-hide { display: none; } 

имеет:

.ui-tabs .ui-tabs-hide { position: absolute; left: -10000px; } 

Поскольку кадр, содержащий содержание в настоящее время «отображается» (хотя с экрана), .sorttable() работает, как вы ожидаете это к.

+0

Замечательно, что вы нашли дорогу. Думаю, все мы узнали от этого! :) – Alfabravo

 Смежные вопросы

  • Нет связанных вопросов^_^