javascript - 如何将参数传递给 jQuery。动画选项对象的完整属性?

标签 javascript jquery parameter-passing

问题标题令人困惑,我知道。这也让我很难找到解决方案。

假设我有这些代码,当 .animate() 选项是外部对象时,我如何将参数传递给 completestep

var someObj = {
    onComplete: function(e) {
        console.log(e); // return undefined
    },

    onStep: function(e) {
        console.log(e); // return undefined too
    },
}

var optionObj = {
    duration: 300,
    easing: 'linear',
    complete: someObj.onComplete(e), // this is not working
    step: someObj.onStep(e) // this is not working
}

$('div').animate({width: "500px", height: "500px"}, optionObj);

最佳答案

要将您自己的参数传递给这些回调并确保 this 在这些回调中正确设置为 someObj,您可能需要额外的闭包:

var optionObj = {
    duration: 300,
    easing: 'linear',
    complete: function() {
        someObj.onComplete(e);  // assumes 'e' is defined somewhere
    },
    step: function(now, fx) {   // jQuery automatically supplies these parameters
        someObj.onStep(e);      // so you need to pass your own instead
    }
}

关于javascript - 如何将参数传递给 jQuery。动画选项对象的完整属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521174/

相关文章:

c++函数参数char指针和字符串

Python argparse 需要选项,具体取决于定义的标志

javafx - 传递参数JavaFX FXML

javascript - 工具提示显示 anchor 标记超出 td 元素

javascript - Ajax 输出上的 onclick 事件

javascript - 如何学习在 javascript 中启用或禁用剑道下拉列表?

javascript - 如果一个元素与另一个元素具有相同的值,则删除该元素

javascript - 当旧日期选择器关闭时打开新日期选择器

Javascript/Jquery 链接更改表单下拉列表

javascript - 在循环中使用 Array.prototype.forEach 可以吗?