gpt4 book ai didi

javascript - jQuery 事件中 'this' 的对象上下文

转载 作者:搜寻专家 更新时间:2023-11-01 04:11:24 24 4
gpt4 key购买 nike

假设我在 javascript 中定义了以下内容:

com.company.long.namespace = {
actions: {
add: {
defaults: {
url: 'myurl/submit',
},

invoke: function () {
var submitUrl = this.defaults.url;
com.company.long.namespace.foo.util.server.submit({
url: submitUrl,
success: function() { }
});
},
}
}
};

然后我在 JQuery 单击事件的上下文中调用它:

$(myElem).click(function() {
com.company.long.namespace.actions.add.invoke();
});

由于 'this' 在 jQuery 事件回调中的工作方式,this.defaults 在此上下文中调用时未定义。无论如何仍然在此范围内使用“this”,而不必定义完整的命名空间,或者不使用 jQuery.proxy

最佳答案

你不能调用add,它不是一个函数。

如果您调用add.invoke 函数,this.default 是您在add 对象中定义的默认对象。您无需执行任何特殊操作。

示例:http://jsfiddle.net/p4j4k/

关于javascript - jQuery 事件中 'this' 的对象上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5874899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com