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>

クラス名を使用してajax経由で呼び出すURLをすでに設定しましたが、done()が呼び出された後に関数を実行して、htmlを更新したいと思います。この関数にajax呼び出しとしてsamne名を付けたいので、「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);
});  

クラス配列のすべての要素には、ajax が完了した後に呼び出される callback という名前のメソッドがあります。

于 2013-01-28T13:41:41.280 に答える