在ajax调用之后调用动态函数

时间:2013-01-28 13:37:50

标签: jquery ajax dynamic

 $('a.action').on('click',function(event){
  event.preventDefault();
  var classes = $(this).attr("class").split(/\s/);
  var action = classes[classes.length -1];
  var url = "/api/" + action + "/" + $(this).attr('href');
  $.ajax({
    type: "POST",
    url: url,
  }).done(function(data){
    //function-name(data);
  });   
});

以上代码附加到点击事件上,链接如下:

<a class="action setsize" href="1">Go</a>

我已经设置了使用类名称通过ajax调用的URL,但是我也希望在调用 done()之后运行一个函数来更新我的html。我希望这个函数将samne名称作为ajax调用,因此需要从'action'var中取名。

我将如何实现这一目标?动态函数语法对我来说是新的。感谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

classes[index].callback = function(data){
    // do something
}
...

var action = classes[classes.length -1];
var url = "/api/" + action + "/" + $(this).attr('href');

$.ajax({
    type: "POST",
    url: url,
}).done(function(data){
    action.callback(data);
});  

classes数组中的每个元素都有一个名为callback的方法,该方法在ajax完成后调用。