JQuery эффекты не работают - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть некоторый опыт работы с PHP, но не так много в JQuery.

Моя страница admin.php имеет div с идентификатором «table1», куда содержимое загружается через ajax:

document.getElementById("table1").innerHTML=xmlhttp.responseText;

xmlhttp получает данные со страницы sorgula1.php, которая имеет некоторые эффекты JQuery, такие как выделение строк таблицы. Когда я пытаюсь запустить sorgula1.php в одиночку, подсветка работает, но когда она загружается через ajax в admin.php, подсветка и другие эффекты JQuery не работают. Я перепробовал все, чтобы это сработало, но я всегда терпел неудачу. Для тех из вас, кто попросит меня удалить оператор $ (document) .ready (function (), я сообщаю вам, что он не работает.

Вот код sorgula.php: sorgula1.php

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

Ответы [ 3 ]

0 голосов
/ 04 апреля 2011

Попробуйте переписать ваши события в Live () . Я бы сказал, что это не работает, потому что элементы загружаются после регистрации функций jQuery. Так что попробуйте

$("tr").not(':first').live('hover',function(){ // CODE });
0 голосов
/ 04 апреля 2011

Может быть, когда вы используете свойство innerHTML, JavaScript не работает. Я думаю, что вы можете решить эту проблему с помощью функции jQuery load().

0 голосов
/ 04 апреля 2011

Скорее всего, проблема в том, что элементы, загруженные через ajax, не имеют примененных к ним эффектов - вы пытались вызвать $ ("# myTable"). Tablesorter ();javascript (снова) после того, как ajax-ответ был получен и введен в DOM?

Изменить Извините, вероятно, вам следует вызывать такой код:

$("tr").not(':first').hover(
  function () {
    $(this).css("background","yellow");
  },
  function () {
    $(this).css("background","");
  }
);

или использовать .live ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...