我是否可以在内部致电selectCompanyJump(this)
而无需从App.site.profile
拨打电话?
除了App.site.profile.selectStateJump(this);
之外,我可以在不更改{.1}}的情况下执行parent.selectStateJump(this);
吗?
this
答案 0 :(得分:1)
您可以将您想要的“this”范围作为change()函数定义之外的另一个变量引用:
profile: function () {
var profile;
return {
init: function () {
profile = $('div#profile');
var self = this;
$('select[name="company_id"]', profile).change(function () {
self.selectCompanyJump(this);
});
$('select[name="state_id"]', profile).change(function () {
self.selectStateJump(this);
});
},
selectCompanyJump: function (select) {
$(select.parent()).submit();
},
selectStateJump: function (select) {
$(select.parent()).submit();
}
}
}()
答案 1 :(得分:0)
您可以执行以下操作
$(document).ready(function () {
App.site = function () {
var me = this;
me.selectStateJump = function selectStateJump (select) {
$(select.parent()).submit();
}
return {
....
selectStateJump: selectStateJump
}
您只需拨打me.selectStateJump()
修改强>
实际上下面就够了
$(document).ready(function () {
App.site = function () {
function selectStateJump (select) {
$(select.parent()).submit();
}
return {
method : function(select) {
selectStateJump(select);
}
selectStateJump: selectStateJump
}
答案 2 :(得分:0)
假设您只是使用函数的select参数来引用触发事件的元素,您只需将指针传递给事件绑定器,然后使用this
关键字。
profile: function () {
var profile;
return {
init: function () {
profile = $('div#profile');
$('name="state_id"', profile).change(this.selectStateJump);
},
selectStateJump: function () {
$(this).parent().submit();
}
}