X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> JS/jQuery. Вопрос по работе ready() и load(), Обрабоать html-код обновляемый ajax-ом
WhiteIce
WhiteIce
Topic Starter сообщение 26.12.2014, 23:58; Ответить: WhiteIce
Сообщение #1


Участник
***

Группа: User
Сообщений: 130
Регистрация: 28.6.2013
Поблагодарили: 26 раз
Репутация:   5  


Здравствуйте, товарищи программисты.

В js не знаток, вопрос появился по работе функций ready() и load().

Что есть:
html код генерируется аяксом.

Задача:
вносить изменения в html-код с помощью js, после каждого его обновления

Что происходит:
Плагин My Calendar для wp создает разметку календаря. Нашим скриптом мы добавляем в блок с датой в которой есть событие ссылку ( просто делаем один prepend ). При перелистывании месяца html-код календарь обновляется, но наш скрипт при этом не срабатывает и ссылку не добавляет, если мы запускаем его по событию jQuery(document).ready(function() или jQuery(window).load(function ().
Если повестить load() на картинку, которая в блоке перезагружаемом ajax, то вообще ничего не происходит и при первичной загрузке.
Что я упустил, и как правильно реальзовать такую штуку - запуск скрипта по обновлению html кода?

Пример не работающий ( календарь в сайдбаре вверху ) :
_http://malahov-web.ru/demo/profitnes/


Код нашего скрипта:
Код
// Прикручиваем ссылку события к блоку с датой
//jQuery(document).ready(function()
//jQuery('.my-calendar-table').load(function()
//jQuery('.my-calendar-table').hover(function()
//jQuery(".my-calendar-table").on('load', function()
//jQuery('a.mini-link external').load(function()
//jQuery('img.category-icon').load(function()
jQuery(window).load(function ()
{      //alert('Скрипт запустился');
      
      // Получаем нужный нам линк      
      jQuery('TD.has-events a.mc-date').attr('href', function(i){
         ++i;
         var calendar_date = jQuery(this).parent('.has-events'); //alert(calendear_date.attr('id'));
         link = calendar_date.find('p.mc_details a').attr('href');// alert(link);
         jQuery(this).attr('href', link);
        
         // Попробуем добавить в ячейку с датой еще тэг с полученной ссылкой на событие
         calendar_date.prepend('<a class="my_new_event_link"></a>');
         calendar_date.find('.my_new_event_link').attr('href', link);
         return link;

      });
      
      jQuery('TD.has-events').hover(function(){
         jQuery(this).find('.my_new_event_link').css('display', 'block');
      })

  
});


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
сообщение 27.12.2014, 0:37; Ответить: devuser
Сообщение #2


Все будет тип-топ
*****

Группа: Active User
Сообщений: 713
Регистрация: 5.12.2012
Из: Online
Поблагодарили: 342 раза
Репутация:   52  


Пробовали так?

jQuery(document).on('ready', function(){});
jQuery(document).on('load', function(){});


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 27.12.2014, 1:08; Ответить: x64
Сообщение #3


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3427
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2749 раз
Репутация:   289  


ready — код, выполняемый после формирования дерева DOM
load — загрузить данные и поместить их в указанные элемент

window — это глобальный объект и окно браузера

Код
jQuery(document).ready(function(){
  // этот код выполняется после того, как страница готова
  jQuery('селектор элемента, в который будет помещён ответ').load('адрес для запроса');
});


честно говоря, вообще не понял, что хотите сделать

Сообщение отредактировал x64 - 27.12.2014, 1:09


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
devuser
devuser
сообщение 27.12.2014, 1:10; Ответить: devuser
Сообщение #4


Все будет тип-топ
*****

Группа: Active User
Сообщений: 713
Регистрация: 5.12.2012
Из: Online
Поблагодарили: 342 раза
Репутация:   52  


x64, я так понял, что добавляются аяксом данные, манипулировать которыми пытаются по document.ready (что не сработает без on/live)

А вообще при перелистывании календаря можнт callback какой есть (или добавить), на который свой код повесить...

Сообщение отредактировал devuser - 27.12.2014, 1:12


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WhiteIce
WhiteIce
Topic Starter сообщение 27.12.2014, 2:36; Ответить: WhiteIce
Сообщение #5


Участник
***

Группа: User
Сообщений: 130
Регистрация: 28.6.2013
Поблагодарили: 26 раз
Репутация:   5  


Цитата(devuser @ 26.12.2014, 23:37) *
jQuery(document).on('ready', function(){});
jQuery(document).on('load', function(){});

Пробовал, не фурычит. Ни на картинку ни на документ. На документ по идее и не должно, потому как ajax изменят только часть страницы, DOM же фомируется по ее загрузке.
Попробую через callback

x64, Да devuser всё правильно понял, нужно изменять html-код который формирует (обновляется) ajaxом. load имел ввиду вот этот





--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) НЕГАТИВНЫЙ отзыв о работе с супер модератором данного форума
Его тема в шапке закреплена, и я не советую с ним связываться
0 koroluk1990 164 Сегодня, 5:30
автор: koroluk1990
Открытая тема (нет новых ответов) Вопрос по seo для интернет магазина
куда девать продвинутые товары, которые уже не выпускают
18 viktormerke 2809 15.12.2017, 15:18
автор: Smspva
Открытая тема (нет новых ответов) Недорогие услуги - php/js/mysql/jquery/bootstrap
2 vlads 657 13.12.2017, 21:01
автор: vlads
Открытая тема (нет новых ответов) Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
18 qpPeW 3470 12.12.2017, 13:32
автор: qpPeW
Открытая тема (нет новых ответов) Продается готовый бизнес на работе в биржах вечных ссылок и статей.
24 Djenya 3871 7.12.2017, 13:57
автор: Djenya


 



RSS Текстовая версия Сейчас: 17.12.2017, 8:58
Дизайн