jquery插件div show在没有预先提醒的情况下无效

时间:2014-04-12 03:43:06

标签: jquery

我无法理解为什么会这样。我正在编写一个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>" + "&nbsp;" + 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秒触发一次,我在哪里附上它?谢谢你的帮助。

1 个答案:

答案 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,因为它表现异步。