JQuery ошибка с различными версиями TableSorter и UI диалог

Я новичок в jquery, так что надеюсь, что это не очевидно. Я искал решение, но не нашел конкретного ответа на мой вопрос.

У меня есть классическая страница asp, в которой есть таблица, которая обновляется каждые 15 секунд с помощью jquery .get, а затем добавляет элементы таблицы.

$(document).ready(function() {
refresh();
var int = self.setInterval("refresh()",15000);});

function refresh(){
$("table").tablesorter();
$("table tbody tr").remove();
//$("#ajax-append").click(function() {
 $.get("assets/ajax-content.asp", function(html) {
    // append the "ajax'd" data to the table body
    $("table tbody").append(html);
    // let the plugin know that we made a update
    $("table").trigger("update");
});
return false;}

Это прекрасно работает, я использовал пример в качестве руководства: http://tablesorter.com/docs/example-ajax.html

Единственная проблема заключается в том, что в одном из столбцов таблицы "ajax" есть тег img с помощью onclick.

function openMessage(strID){
if (strID != ""){
    id = strID;
    //alert(id);
    $('#dialog').dialog('open');  
}

} Я использую переменную id в диалоге. Я знаю, что этот код работает, потому что до jQuery TableSorter (вчера) он использовался в течение нескольких месяцев, и до сих пор (в производстве).

Ошибка, которую я получаю от FireBug:

$ ("# dialog"). dialog не является функцией [Break On This Error] $('#dialog').dialog('open');

Я использую ту же версию jquery, которую они рекомендуют из демонстрации tableorter: http://tablesorter.com/jquery-latest.js которая не очень новая. Я заметил, что я использую свой файл jquery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.js"></script>

Сортировщик не работает. Плюс, если я добавлю интерфейс включает в себя:

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js">/script>

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>

сортировка не работает Если я отключаю JQuery включает (не пользовательский интерфейс), то.get() не работает, и отображается только заголовок таблицы.

Мой вопрос заключается в том, различают ли версию jquery и пользовательский интерфейс, с которыми они могут работать? Мой диалог msg довольно прост, просто открывается диалоговое окно, в котором также используется ajax для публикации чтения / записи в БД в зависимости от нажатой кнопки. Почему версия jquery для таблиц не работает, когда я включаю интерфейс? Есть обходные пути?

Есть ли в моем коде что-нибудь, что могло бы его сломать?

Большое спасибо за любую помощь заранее!

1 ответ

Решение

Мы используем JQuery 1.4.2 вместе с плагином TableSorter без проблем. Вы можете увидеть это в действии здесь: http://www.bet-mate.com/

Однако мы не используем jquery UI.

В общем, метод диалога - это метод пользовательского интерфейса jquery. Так что исключать это не имеет смысла. Убедитесь, что у вас есть версия пользовательского интерфейса jquery, совместимая с используемой версией jquery.

Если это не поможет, попробуйте получить версию пользовательского интерфейса jquery, которая работает с jquery 1.4.2, и используйте ее, чтобы проверить, решает ли это проблему.

Другие вопросы по тегам