2011-01-29 3 views
1

Я использую вызов getJson для выпадающих списков. Я хочу иметь эффект предварительной загрузки изображения для этого вызова ajax. Может ли кто-нибудь помочь мне с этим ... ?? Мой код следующим образом:хочу предварительно загрузить изображение в течение некоторого времени до вызова getJson

$.getJSON("myAction.do?method=fetchThruAJAX", { 
    TypeNo: $("#Type").val(), 
    ajax: 'true' 
}, function(j) { 
    var options = '<option selected value="-1">---Select---</option>'; 
    if (j != null) { 
     $.each(j.Model, function(i, item) { 
      options += '<option value="' + item.SeqNo + '">' 
       + item.Name + '</option>'; 
     }); 
    } 
    $("select#Model").html(options); 
}); 

ответ

1

Вы можете сделать это в глобальном масштабе с помощью ajaxStart и ajaxStop события:

$("#yourEffectContainerID").ajaxStart(function() { 
    $(this).fadeIn("fast"); 
}).ajaxStop(function() { 
    $(this).fadeOut("fast"); 
}); 

Таким образом, ваш эффект контейнера будет отображаться во всех AJAX запросов (так что поведение не ограничивается конкретным номером getJSON(), который вы вызываете для своего раскрывающегося списка).

+0

привет спасибо за ответ. Я объявляю это глобально: '$ (document) .ready (function() {$ ("# imageLoad"). AjaxStart (function() {$ (this) .fadeIn ("fast");}) .ajaxStop (function() {$ (this) .fadeOut ("fast");});}) ', и мой контейнер div похож на'

'Но код, который вы дали, не работает. Я думаю, что я делаю это где-то неправильно. Пожалуйста, помогите мне, если у вас есть пример кода, чтобы получить лучшую картину на этом – rahul

+0

@rahul, который работает для меня в [этом грубом тесте] (http://jsfiddle.net/gJpYt/). –

+0

@frederic: но это не слишком быстро. Я пытаюсь сейчас с медленным, давайте посмотрим .... !!! или не можем показать изображение, скажем, на 2 секунды, чем скрыть его ... ??? – rahul

 Смежные вопросы

  • Нет связанных вопросов^_^