0
 $('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>

我已经使用类名将 URL 设置为通过 ajax 调用,但我还想在调用done()之后运行一个函数,以更新我的 html。我希望此函数具有与 ajax 调用相同的名称,因此它需要从“action”变量中获取其名称。

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

4

1 回答 1

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 完成后调用。

于 2013-01-28T13:41:41.280 回答