这是我的自定义jQuery函数:
(function($){
$.fn.NotYet = function(arti_id) {
this.append(function() {
var result = 0;
$.post("comment_load.php", {arti_id:arti_id, status:1}, function(data){
console.log(data); // Returns data from POSTed PHP file
console.log(result); // Returns 0
//$(this).append(result); // Not Working
result = data;
console.log(result); // Returns data from POSTed PHP file
});
console.log(result); // Returns 0
return result; // Returns 0
});
return this; // Returns 0
};
})(jQuery);
我正在这样调用函数:
$("div#Comments").NotYet(15);
我正在尝试制作jQuery函数,但无法将发布的php文件数据返回到<div>
容器中。
有什么建议?
仅供参考:这个问题很相似,但是我不明白发生了什么,我需要一个简单的方法。如何从异步调用返回响应?
$.post
是异步方法,它无法返回任何内容。而且您的问题是在ajax调用结束之前设置了结果值。这就是为什么console.log值设置为的原因0
。
this
元素内部为无效元素,因此您需要在传递给成功函数之前声明另一个变量,例如var that = this
代码:
(function($) {
$.fn.NotYet = function(arti_id) {
this.append(function() {
var that = this;
var result = 0;
$.post("comment_load.php", {
arti_id: arti_id,
status: 1
}, function(data) {
console.log(data); // Returns data from POSTed PHP file
$(that).append(data); //its work
result = data;
});
console.log(result); // Returns 0 //its excute before ajax call
return result; // its not possible
});
};
})(jQuery);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句