我无法理解为什么会这样。我正在编写一个jquery插件来从我的数据库(Mongo)中获取记录以返回数据。这就是代码的外观......
(function() {
var result1;
var image1;
$.fn.showRecs = function() {
var loadData = randomShow();
var result = loadData.complete( function(data) {
$.each(eval(data), function(i,item){
result1 = item.name;
image1 = item.pic1;
if ( image1 == undefined) { image1 = "face_unknown.png"; }
});
});
alert(result1);
this.html("<img src='http://localhost/uploads/" + image1 + "'></img>" + " " + result1);
}
function randomShow() {
return $.ajax({
type: "POST",
url: "http://localhost/action.php",
data: {'showProf' : 1, 'random' : 1 , 'limit2Show' : 1},
datatype : "json",
});
}
}(jQuery) );
显示&#34; this.html&#34;除非之前提供警报,否则不显示值。为什么会这样?请让我知道摆脱它。
另外,我希望为它附加一个计时器,以便每n秒触发一次,我在哪里附上它?谢谢你的帮助。
答案 0 :(得分:0)
try to change your ajax like:
function randomShow() {
return $.ajax({
type: "POST",
url: "http://localhost/action.php",
async:false,
data: {'showProf' : 1, 'random' : 1 , 'limit2Show' : 1},
datatype : "json",
});
}
}(jQuery));
请注意&#34; async:false&#34;将确保您在成功执行后返回ajax响应。在你的情况下,它是滑动ajax,因为它表现异步。