Javascript 如何从jquery中的另一个函数调用父类的函数
我想这是个简单的问题。我是新来的Javascript 如何从jquery中的另一个函数调用父类的函数,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我想这是个简单的问题。我是新来的js,尤其是Backbone.js 我只想知道如何在jquery函数中引用我的函数 getLanguages: function() { ... return languages; }, render: function() { ... $("input[type='checkbox']").bind("change", function() { // todo: getLanguages }); }
js
,尤其是Backbone.js
我只想知道如何在jquery函数中引用我的函数
getLanguages: function() {
...
return languages;
},
render: function() {
...
$("input[type='checkbox']").bind("change", function() {
// todo: getLanguages
});
}
render: function() {
var CurrentObj = this;
$("input[type='checkbox']").bind("change", function() {
CurrentObj.getLanguages();
});
}
我试图通过this
获取语言,但是,当然,在这种情况下,我得到了复选框
编辑:
很简单。多谢大家这是Javascript中的一个经典问题。您需要在回调中引用this
,但是this
会更改绑定到的元素。一种廉价的方法:
render: function() {
var that = this;
$("input[type='checkbox']").bind("change", function() {
that.getLanguages();
});
}
的
将保持定义为此
的
,该在其上定义
然而,您正在使用主干网,它有更合适的方法来处理这种情况。我不知道你的主干网的名称。查看类,但这里有一个:
在render
内部调用bind
不是主干方式。主干视图用于处理事件委派,而无需传递这个。这是Javascript中的一个经典问题。您需要在回调中引用this
,但是this
会更改绑定到的元素。一种廉价的方法:
render: function() {
var that = this;
$("input[type='checkbox']").bind("change", function() {
that.getLanguages();
});
}
的
将保持定义为此
的
,该
在其上定义
然而,您正在使用主干网,它有更合适的方法来处理这种情况。我不知道你的主干网的名称。查看类,但这里有一个:
在render
内部调用bind
不是主干方式。主干视图用于处理事件委派,而无需在渲染函数范围内的绑定更改事件之前保存此对象
getLanguages: function() {
...
return languages;
},
render: function() {
...
$("input[type='checkbox']").bind("change", function() {
// todo: getLanguages
});
}
render: function() {
var CurrentObj = this;
$("input[type='checkbox']").bind("change", function() {
CurrentObj.getLanguages();
});
}
在渲染函数范围内的绑定更改事件之前保存此对象
getLanguages: function() {
...
return languages;
},
render: function() {
...
$("input[type='checkbox']").bind("change", function() {
// todo: getLanguages
});
}
render: function() {
var CurrentObj = this;
$("input[type='checkbox']").bind("change", function() {
CurrentObj.getLanguages();
});
}
您可以将适当的对象保存到局部变量中,以便从事件处理程序中仍然可以访问它:
getLanguages: function() {
...
return languages;
},
render: function() {
...
var self = this;
$("input[type='checkbox']").bind("change", function() {
var lang = self.getLanguages();
...
});
}
您可以将适当的对象保存到局部变量中,以便从事件处理程序中仍然可以访问它:
getLanguages: function() {
...
return languages;
},
render: function() {
...
var self = this;
$("input[type='checkbox']").bind("change", function() {
var lang = self.getLanguages();
...
});
}
这看起来像一个对象,你试过objName.functionName(obj.prop)吗?我用主干特定的代码更新了我的答案,我建议你检查一下。存储对此
的引用可能会解决您眼前的问题,但它不美观,而且主干具有内置结构以避免这种不美观的需要。看起来像一个对象,您是否尝试过objName.functionName(obj.prop)?我用我建议您检查的主干特定代码更新了我的答案。存储对此
的引用可能会解决您眼前的问题,但它不美观,而且主干具有内置结构以避免不美观。事件
的+1,使用events
还可以将所有内容本地化到视图的el
,这有助于保持视图的自包含性。+1对于events
,使用events
还可以将所有内容本地化到视图的el
,这有助于保持视图的自包含性。