Функция вызова Ajax после успеха - PullRequest
8 голосов
/ 31 мая 2011

Я работаю над сайтом, где мы получаем информацию из XML-файла.Это прекрасно работает, но теперь мне нужно сделать слайдер из контента.Для этого я буду использовать jCarousel, который утверждает, что он может делать это с динамически загружаемым контентом, вызывая функцию обратного вызова.

Однако я не могу выполнить начальную загрузку ajax, когда вызываю функцию науспех.Что я делаю не так?

$(document).ready(function() {
    $.ajax({
        type: "GET",
        //Url to the XML-file
        url: "data_flash_0303.xml",
        dataType: "xml",
        success: hulabula()
    });

    function hulabula(xml) {
            $(xml).find('top').each(function() {
                var headline = $(this).find('headline1').text();
                var headlineTag = $(this).find('headline2').text();

                $(".wunMobile h2 strong").text(headline + " ");
                $(".wunMobile h2 span").text(headlineTag);
            });

            ..............

Я что-то не так делаю ???Или это совершенно другое место, которое мне нужно посмотреть?: -)

Ответы [ 3 ]

15 голосов
/ 31 мая 2011

Используйте hulabula вместо hulabula () или передайте функцию напрямую параметрам ajax:

1

$.ajax({
    type: "GET",
    //Url to the XML-file
    url: "data_flash_0303.xml",
    dataType: "xml",
    success: hulabula
});

2

$.ajax({
    type: "GET",
    //Url to the XML-file
    url: "data_flash_0303.xml",
    dataType: "xml",
    success: function(xml) { /* ... */ }
});
4 голосов
/ 31 мая 2011

Используйте $. Когда

function hulabula(xml) {
            $(xml).find('top').each(function() {
                var headline = $(this).find('headline1').text();
                var headlineTag = $(this).find('headline2').text();

                $(".wunMobile h2 strong").text(headline + " ");
                $(".wunMobile h2 span").text(headlineTag);
            });
}


var ajaxCall  = $.ajax({
        type: "GET",
        //Url to the XML-file
        url: "data_flash_0303.xml",
        dataType: "xml"
    });

//Use deferred objects

$.when(ajaxCall)
 .then(function(xml) { hulabula(xml); });
0 голосов
/ 21 сентября 2016

Вы можете сделать это следующим образом:

   $.post( "user/get-ups-rates", { cart_id: cart_id, product_id: product_id, service_id:service_id })
    .done(function( data ) {
         el.parent().find('.upsResult').html('UPS Shipping Rate Is $'+data.rate);
    })
    .fail(function(data) {
          el.parent().find('.upsResult').html('<p style="color:red">UPS Service Error Occured. </p>');
     })
     .complete(function (data) {   
         setShippingOptions(cart_id,product_id,service_id,data.rate);
    });

Просто вызовите функцию «завершено», а не «выполнено» или «успех»

...