函数句柄jQuery事件和参数?

时间:2014-06-09 20:09:04

标签: javascript jquery

请使用以下代码

// Update button clicked
function updateEntity(e) {
    e.preventDefault();

    var name = $(this).attr("name");

    ...
    // some stuff
    ...
}

$(document).on("click", ".updateEntity", updateEntity);

目前,我有这个(去图)更新我点击按钮时编辑的实体。现在,它的参数特别期待一个jQuery事件。但是,我希望能够在jQuery事件之外调用此函数(最终目标:最小化代码)。像这样,

// Do an update but then redirect to prevent adding the same estimate twice.
function createEstimate(e) {
    updateEntity(e);

    var link = $(this).attr("href");
    window.location.href = link;
}

$(document).on("click", ".createEntity", createEstimate);

问题:我如何调用updateEntity或设置函数,以便我可以将它提供给click-event处理程序并将其称为函数,但仍然具有它使用正确吗?这个目标是否现实,或者如果我想实现这样的目标,我应该以不同的方式构建这个目标吗?

(包含它并不明显,我目前的问题是函数调用updateEntity(e); $(this)变为window而不是点击的链接。)

1 个答案:

答案 0 :(得分:2)

使用.call正确设置this

updateEntity.call(this, e);

Learn more about this