Javascript 将对象传递回函数

Javascript 将对象传递回函数,javascript,jquery,Javascript,Jquery,我有以下代码,试图将btn对象传递回调用handleMemberAction的位置,以便添加或删除一些类。但我没有运气这么做。如何做到这一点 var handleMemberAction; handleMemberAction = function(selector, action_path, success_handler) { return $(document).on("click", ".member-row " + selector, function(e) { var

我有以下代码,试图将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");
});

在传递给post函数的匿名函数中调用
success\u handler
,而不是直接传递
success\u handler
。然后,您可以通过调用
handleMemberAction
时指定的回调来传播任何内容

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

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

这完全取决于SF.action.post传递到第三个参数的内容(在这里传递
success\u handler
)将代码从该函数中取出。和console.log首先记录每个变量,以了解代码停留在哪个部分