JavaScript не работает после обратной передачи AJAX (jQuery Backstretch и Telerik RadAjaxManager)

Я использую jQuery Backstretch ( http://srobbin.com/jquery-plugins/backstretch/), но после обновления AJAX через RadAjaxManager AjaxRequest (запущенный на стороне клиента) он умирает.

Я попытался повторно инициализировать после AJAX, но не играли в кости. Другие плагины jQuery все еще работают (например, обратный отсчет для jQuery - http://keith-wood.name/countdown.html).

Загрузка страницы JS:

$(document).ready(function () {
  $('#timer').countdown({
    until: new Date(2014, 5 - 1, 1)
  });

  $.backstretch([
    'images/bg1.jpg',
    'images/bg2.jpg',
    'images/bg3.jpg'
     ], {
     fade: 750,
     duration: 4000
  });
});

Javascript призвал к нажатию кнопки:

$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest();

VB:

Protected Sub RadAjaxManager1_AjaxRequest(sender As Object, e As AjaxRequestEventArgs) Handles RadAjaxManager1.AjaxRequest
    'Do something
End Sub

После запуска AjaxRequest обратный отсчет еще продолжается, но изображения Backstretch исчезли!

Помогите?

2 ответа

Решение

Оберните вашу функцию в функцию самостоятельного вызова следующим образом:

(function($){
  $(document).ready(function () {
 ...
  });
});})($telerik.$)

это загрузит jquery из библиотек telerik.

Что касается причины, это как-то связано с тем, как Telerik обрабатывает ajax, и не загружает jquery из ваших библиотек ссылок.

Вы можете привязать к идентификаторам.

В противном случае, с целью отладки, попробуйте перезапустить сценарий js после вызова ajax.

 $(document).ready(function(){
       //your ajax call
       $.getScript("jquery.min.js");
 });
Другие вопросы по тегам