将对象传回功能

时间:2014-12-03 23:49:50

标签: javascript jquery

我有以下代码,我试图将btn对象传递回调用handleMemberAction的位置,以便可以添加或删除某些类。但我没有运气这样做。怎么办呢?

var handleMemberAction;

handleMemberAction = function(selector, action_path, success_handler) {
  return $(document).on("click", ".member-row " + selector, function(e) {
    var btn, member_id, request;
    btn = $(this);
    btn.text(btn.data("loading-text"));
    member_id = btn.parents(".member-row").data("id");
    request = {
      transfer_id: btn.parents(".member-row").data("transfer"),
      org_id: $("#club_members").data("org")
    };
    return SF.action.post("action/transfer/" + action_path, request, success_handler);
  });
};

handleMemberAction(".cancel_transfer", "cancel", function(e, btn) {
  return btn.removeClass("btn-warning cancel_transfer").addClass("btn-default transfer").text("Transfer");
});

1 个答案:

答案 0 :(得分:1)

在传递给post函数的匿名函数中调用success_handler,而不是直接传递success_handler。然后,您可以将所需的任何内容传播到调用handleMemberAction时指定的回调。

return SF.action.post("action/transfer/" + action_path, request, function (postCallbackData) {
    success_handler(postCallbackData, btn);
});

注意,我不确定SF.action.post调用你的函数是什么,但是我假设第一个参数是正确的,我只是传递了它。