我需要返回动态加载的内容.我认为这是实现它的方法,但该函数返回空白.为了使用从jQuery.ajax检索的HTML代码设置htmlCode,我需要做什么?
// Get directory listing
function getHTML(instance, current_path, dir) {
var htmlCode = '';
jQuery.ajax({
type: "POST",
url: "../wp-content/plugins/wp-filebrowser/jquery.PHP",
dataType: 'html',
data: {instance: instance, current_path: current_path, dir: dir},
success: function(html){
htmlCode = html;
},
error: function(e) {
htmlCode = '[Error] ' + e;
}
});
return htmlCode;
}
解决方法:
发生这种情况是因为ajax请求需要一些时间来获取html,并且在html准备好之前会触发return语句. Javascript代码执行不等待你的html返回.您实际上可以通过删除返回并发出两个警报来查看此信息.在成功事件中放置一个警报,在放置return语句的位置放置一个警报.第二个警报会提前警告.因此,即使你的html被提取,它也永远不会成功返回到调用函数,因为时间html已经触发了return语句.
如果您严格要求函数getHtml()返回(实际上回调)html作为输出,您可以使用回调,否则您可以使用Nick建议的方式.
以下是如何使用回调: –
function getHTML(instance, current_path, dir,callback)
{
var htmlCode = '';
jQuery.ajax({
type: "POST",
url: "../wp-content/plugins/wp-filebrowser/jquery.PHP",
dataType: 'html',
data: {instance: instance, current_path: current_path, dir: dir},
success: function(html){
callback(html); //instead of a return
},
error: function(e) {
htmlCode = '[Error] ' + e;
}
});
}
getHTML(instance, current_path, dir,
function(html)
{
//Write code to use the html here - this will run when the getHTML() function does callback with the output html
}
);
注意函数定义中的callback参数getHTML(instance,current_path,dir,callback)和被调用函数中的相应函数(html){}部分.
这样,你实际上定义: –
>调用函数在输出就绪时回调调用函数
>和调用者函数在收到回调时执行某些操作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。