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");
});