Jump to content
  • 0

Инициализация скрипта при ajax запросе


htmligor
 Share

Question

Всем привет. На странице имеется такой вызов функции

$('.rating').rating({	fx: 'float',	image: '/bitrix/templates/ombra/images/stars.png',	loader: '/bitrix/templates/ombra/images/ajax-loader.gif',	minimal: 0.6,	url: '/ombra_site/include/ajax/set_rating.php',	callback: function(responce){			   	this.vote_success.fadeOut(2000);	if(responce.msg) alert(responce.msg);	}});

 Когда идет подгрузка элементов с классом .rating при помощи ajax , то элементы добавленные таким образом не инициализируются и к ним не применяется скрипт. Как надо сделать ? При каждом ajax запросе добавлять такую конструкцию или есть нормальный выход из этой ситуации ? 

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Посмотрите что делает этот самый метод rating. Он, скорее всего, через какой-нибудь bind работает или типа того. Сделайте так, чтобы это хозяйство работало через on и будет вам счастье.


Да. Оберни этот вызов в функцию. И после аякса вызывай эту функцию, чтобы не захламлять код.

А вот так не делайте.

Link to comment
Share on other sites

  • 0

Дело в том что это рейтинг http://fscreen.ru/cWGInt10714144918 ,  и при подгрузке элементов при помощи ajax он не появляется, до bind мы не дошли пока не кликнем по звездочке , просто он не появляется изначально, как посоветуете сделать в этом случае ?

Link to comment
Share on other sites

  • 0

Ну и же вы сами ответили на свой вопрос - после подгрузки элементов заново инициализируйте полученные рэйтинги


 

 

Посмотрите что делает этот самый метод rating

Как я понял - он подгружает что то типа одного тега, а потом применяется инициализация  и расставляются звезды 

Edited by Николя223
Link to comment
Share on other sites

  • 0

Не надо заново ничего инициализировать, не слушайте их. Я понимаю примерно что за рейтинг и понимал их с самого начала. Суть в том, что плагин, судя по всему, навешивает события при помощи bind, что не совсем подходит вам. Я бы рекомендовал залезть в код плагина и изменить там bind на live (если старая версия) или на on (если версия поновее).

Link to comment
Share on other sites

  • 0

пусть сайт показывает иначе пальцем в небо

если он подгружает только обертку, а потом плагином преобразовывает в нужный вид - то смысл то просто в смене bind на on или live?

Edited by Николя223
  • Like 1
Link to comment
Share on other sites

  • 0
пусть сайт показывает иначе пальцем в небо если он подгружает только обертку, а потом плагином преобразовывает в нужный вид - то смысл то в смене bind на on или live?

Да, пожалуй, тут соглашусь. Плагин может быть весьма корявым и простая замена может не помочь.

  • Like 1
Link to comment
Share on other sites

  • 0

Смотрите какая штука. я не пробовал, при получении постов аяксом, перед вставкой  содержимого, к полученым постам ещё в аяксе применить рэйтинг

Я никогда не пробовал применять плагины таким способом , если получиться то не придется все инициализировать. 

$(data).rating({...

Т.е. попытаться проинициализировать только полученые посты. А в самом плагине заменить bind на live или on

 

 

 

Или по другому

$(data).find(".post:eq(0)").addClass("last-rating")

Затем вставить посты а затем инициализация

$(".last-rating:last").prev().nextAll().find(".raiting").rating({...

 

Или  

 $(data).wrap('<div class="posts-group"></div>')

      Затем вставить посты  и  инициализация

$(".posts-group:last .raiting").rating({...

Edited by Николя223
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy