我正在尝试在javascript中使用此函数的回调函数
function Filtering_GetSite(siteElement) {
$.ajax({
type: "POST",
url: "samle.asmx/f1",
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var filtersitedetails = response.d;
var appendItem = "";
$(siteElement).empty();
$.each(filtersitedetails, function (index, Filtering_GetSiteInfo) {
var activeappend = "";
var id = Filtering_GetSiteInfo.id;
var site = Filtering_GetSiteInfo.site;
activeappend = "<option value=" + id + ">" + site + "</option>";
appendItem += activeappend;
});
$(siteElement).prepend('<option disabled="disabled" selected="selected" value="">Select Site</option>');
$(siteElement).append(appendItem);
},
error: function (response) {
alert("error in Filtering_GetSite");
}
});
}
这就是我调用函数并尝试使用回调函数的方法
Filtering_GetSite("#txt-site-name", function () {
alert('ok')
Dashboard_GetAgentInfo(agentParam,agentElement);
});
但问题是它在功能完成时没有进入警报状态。我怎么能这样做?
答案 0 :(得分:2)
这是因为当ajax
成功调用时,您似乎没有传递并调用该方法。
首先,您必须更改Filtering_GetSite
的方法签名以接受第二个参数,在这种情况下是callback
,然后当ajax
成功时您只需调用它
function Filtering_GetSite(siteElement, callback) {
...
success: function() {
....
callback();
}
...
}
答案 1 :(得分:1)
您尚未将回调参数设置为Filtering_GetSite
功能。 e.g。
function Filtering_GetSite(siteElement, callback) {
}
然后,您可以使用callback()
来触发回调。例如,在success
块内;
答案 2 :(得分:0)
这是一个包装。
您需要为回调函数
指定第二个参数我还添加了一个条件,所以当你省略第二个参数时,它会检查callback
是否有函数,所以你可以调用Filtering_GetSite(sample)
Filtering_GetSite(sample,function(){})
function Filtering_GetSite(siteElement, callback) {
if (typeof (callBack) == "function") {
callBack();
}
}
< / p>
MySQL 5.7.5 and Before
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root!@#');
5.7.6 and Later
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root!@#';