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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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

В 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


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

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


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


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


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

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

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


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


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WhiteIce
WhiteIce
Topic Starter сообщение 27.12.2014, 2:36; Ответить: WhiteIce
Сообщение #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 имел ввиду вот этот





Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1242 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44909 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Вопрос - платное размещение баннеров на сайте
10 WGN 3184 14.12.2020, 14:20
автор: Peterson
Открытая тема (нет новых ответов) Куплю много статей по работе, зарплате, труду
Нужны сотни статей. Лучше пачками.
3 Dani 5531 2.5.2020, 2:51
автор: NikaRo
Открытая тема (нет новых ответов) Нуждаюсь в работе
постоянно/разово
6 MihalychAIP 2781 19.3.2020, 6:33
автор: MihalychAIP


 



RSS Текстовая версия Сейчас: 20.4.2024, 3:16
Дизайн