Переход jQuery .load и sorttable.js

У меня есть JQuery:

$("#loadBtn").click(function(){
    $('#div1').delay(200).slideUp('slow')
        .load
        ('page2.php #div2').hide().delay(300).slideDown('slow');
        return false;
    });

Когда нажимается #loadBtn (находится в моем #leftColumn), он отлично заменяет #div1 на #div2. У меня есть две проблемы с этим кодом, однако..

1) Решено GINCHER ---- Я не могу заставить функцию скользить вверх #div1. он всегда просто мгновенно исчезает и сползает вниз #div2.
Если я использую jQuery:

$("#loadBtn").click(function(){
    $('#div1').delay(200).slideUp('slow')
});

этот код будет скользить #div1 безупречно, однако, как только я добавлю .load('page2.php #div2') он ломается и исчезает перед тем, как скатиться вниз.

2) решено GINCHER ---- я не могу получить таблицы в #div2 для сортировки с помощью sorttable.js
Я понимаю, что скрипты, запускаемые на page1.php при загрузке, не могут быть применены к элементам, загружаемым через AJAX.

Я попытался вызвать новую таблицу после завершения функции загрузки,

$('#div1').load('page2.php #div2', function() {
    var newTable = document.getElementById('#tableId');
    sorttable.makeSortable(newTable);
});

Но это не работает. Чтобы посмотреть, что произойдет, я вставил весь контент sorttable.js в

$('#div1').load('page2.php #div2', function() { /*sorttable.js content*/}

Это заставило таблицу работать должным образом, потому что функция была запущена после загрузки содержимого. что я делаю не так с этим?

1 ответ

Решение
  1. $('#div1').delay(200).slideUp('slow', function(){ $(this).load('page2.php #div2').hide().delay(300).slideDown('slow'); });Сделайте функцию загрузки после того, как слайд вверх завершен.

  2. var newTable = document.getElementById('tableId'); - не добавляйте хэштег в getElementById,

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