如何从jQuery内部调用javascript函数?
我试图清理一些代码并将其划分为不同的函数。有些东西不起作用,我认为这与范围有关。我试图从jQuery更改事件侦听器中执行loadSubscriberList如何从jQuery内部调用javascript函数?,javascript,jquery,if-statement,scope,Javascript,Jquery,If Statement,Scope,我试图清理一些代码并将其划分为不同的函数。有些东西不起作用,我认为这与范围有关。我试图从jQuery更改事件侦听器中执行loadSubscriberList showUserList: function (res) { $('#cvUser').append('<option value=""> - Select a user - </option '); $.each(res.UserList, function (key, value) {
showUserList: function (res) {
$('#cvUser').append('<option value=""> - Select a user - </option ');
$.each(res.UserList, function (key, value) {
$('#cvUser').append('<option value="' + value.id + '">' + value.firstName + " " + value.lastName + " " + value.userid + '</option>');
});
$('#cvUser').on('keyup change', function () {
if ($('#cvUser').val()) {
$('#subscriberSelectView').html('');
var showSubscribers = $($("#subscriberSelect").text());
$("#subscriberSelectView").append(showSubscribers);
this.loadSubscriberList();
} else {
$('#subscriberSelectView').html('');
}
});
},
loadSubscriberList: function () {
var postData = {
'usr': $('#cvUser').val()
}
appNS.tpmBase.ajaxReq(
'',
postData,
'/rsc/cvr/gsl',
null,
null,
$.proxy(this.handleShowUserList, this)
)
},
未捕获类型错误:this.loadSubscriberList不是函数
你能试试这个吗
$('#cvUser').on('keyup change', function () {
if($('#cvUser').val()){
$('#subscriberSelectView').html('');
var showSubscribers = $($("#subscriberSelect").text());
$("#subscriberSelectView").append( showSubscribers );
loadSubscriberList($('#cvUser').val());
}
else {
$('#subscriberSelectView').html('');
}
});
} ,
loadSubscriberList: function(cvUserVal) {
var postData = {
'usr': cvUserVal
}
将this.loadSubscriberList更改为loadSubscriberList$'cvUser'.val;并将cvUserVal作为参数添加到loadSubscriberList函数中。在javascript中,其含义是动态的 在内部函数(keyup/change处理程序)中,这是cvUser元素 一种解决方法是保留对此外部对象的引用。根据习惯,我们使用它
您从哪里调用loadSubscriberList,它会给您带来错误?你能发布那个代码吗?试着把它放在$'cvUser'中ShowUserList.this.loadSubscriberList的前面。大概是在'keyup change'上。jQuery事件处理程序中的这个元素引用了事件cvUser的元素目标,因此它说它没有该函数。提示:您可以缓存var cvUser=$'cvUser',并重用它,而不是每次跳入DOM。然后执行cvUser.on'event'。尝试window.loadSubscriberList:函数{//您的代码}如果出现错误,则未定义loadSubscriberList。
showUserList: function(res) {
var that = this;
...
$('#cvUser').on('keyup change', function() {
...
that.loadSubscriberList();
...
});
},