2011-05-31 142 views
8

我正在从一个XML文件获取信息的网站上工作。它工作得很好,但现在我需要制作一个内容滑块。为此,我将使用jCarousel声明他们可以通过调用回调函数来完成动态加载的内容。成功后的Ajax调用函数

但是,当我调用成功函数时,我不能做出初始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); 
      }); 

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

我做错了什么?或者这是一个完全不同的地方,我必须看看? :-)

回答

14

使用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) { /* ... */ } 
}); 
+0

如何通过数据对象? (在这种情况下是xml) – 2017-10-11 09:18:16

4

使用$.when

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

hulabula没有关闭。它应该在哪里被关闭? – 2011-05-31 09:32:03

+0

@Kenneth:编辑答案。 – dhinesh 2011-05-31 10:10:43

0

你可以这样说:

$.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); 
    }); 

只需调用中的函数不是在“完成”“完成”或“成功”