gpt4 book ai didi

javascript - 'functionInBackboneView' 不是 Jquery 中的函数上下文

转载 作者:太空宇宙 更新时间:2023-11-04 16:25:51 24 4
gpt4 key购买 nike

我有一个 Backbone View ,我将 droppable 设置为一个元素。我想访问“outeraddOperator 方法,但是如何访问?它给出一个错误,表明它不是一个函数。

var CanvasView = Backbone.View.extend({
el: "#canvas",
render: function () {
$("#canvas-container").droppable({
drop: this.handleDropEvent
});
},
addOuterOdperator: function (toolID) {
console.log(toolID);
console.log("outer");
},
handleDropEvent: function (event, ui) {
console.log("inside handle func");
var id = 0;
var addInnerOperator=function(ie){
console.log("inner");
};
addInnerOperator(id);
//this.addOuterOperator(id); gives an errror
}
});

最佳答案

我相信您在使用 this.addOuterOperator 时遇到错误,因为您位于事件处理程序上下文中。因此,为了避免这种情况,您可以尝试以下代码:

var CanvasView = Backbone.View.extend({
el: "#canvas",
render: function () {
var self = this; //creating a self reference
$("#canvas-container").droppable({
drop: function( event, ui ) {
self.handleDropEvent(event, ui, self); //passing the self reference
}
});
},
addOuterOdperator: function (toolID) {
console.log(toolID);
console.log("outer");
},
handleDropEvent: function (event, ui, selfRef) {
console.log("inside handle func");
var id = 0;
var addInnerOperator=function(ie){
console.log("inner");
};
addInnerOperator(id);
selfRef.addOuterOperator(id); //accessing the function via selfRef
}
});

关于javascript - 'functionInBackboneView' 不是 Jquery 中的函数上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40231138/

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