Jquery .load()函数有时加载空白

时间:2016-05-20 20:22:58

标签: javascript jquery html ajax twitter-bootstrap

我有一个问题是谁扭曲了我的想法。我在Jquery没有那么多经验,所以我希望你们能给我一个亮点。

嗯,问题,基本上:我有Spring + Thymeleaf,并且,为了不立即向DB发送这么多请求,请使用Jquery.load(url)(其中' url'是地址我的第34个电话号码")。实际上,这种方法很有效。问题是,有时,电话号码所在的弹出窗口是空白的。然后,如果我等待几分钟并刷新页面,它会突然开始工作!

以下是编码:

HTML页面,点击后,调用调用Jquery.load()的Javascript函数:

<a class="popover-birthday" th:onclick="'retrievePhones(__${birthday.idUser}__)'"><i class="fa fa-search-plus search-def"></i></a>
    <div class="webui-popover-content">
           <div id="phoneList"></div>
    </div>

我在id&#34; phoneList&#34;:

的div中加载的片段
<div th:each="pho : ${phone}"><span th:text="|(${pho.numArea}) ${pho.number}|"></span></div>

控制器方法:

@RequestMapping(value = "/birthday/phone/{idUser}", method = RequestMethod.GET)
public ModelAndView showPhoneList(@PathVariable Long idUser) {
    ModelAndView mv = new ModelAndView("user/birthday/resultsTel");
    mv.addObject("phone", users.getPhonesByIDUser(Integer.parseInt(idUser.toString())));
    return mv;
}

通过Jquery.load()处理获取id并加载html的Javascript代码:

<script>
    function retrievePhones(idUser) {
        $(document).ready(function(){
            var url = '/user/birthday/phone/'+ idUser;
            console.log(">>>"+ url);
            var result = $("#phoneList").empty().load(url);
            return result;
        });
    }
</script>

此外,我使用的Web-ui-popover插件的定义:

<script type="text/javaScript"> 
        $(document).ready(function(){
            $('.popover-birthday').webuiPopover({title:'Numbers:',placement:'bottom',animation:"pop"});
        });
</script>

正在说的插件就是这个:https://github.com/sandywalker/webui-popover

我想到有时webuipopover在Jquery.load()的Javascript之前加载(Web-Ui-Popover在点击类时创建自己,如

中所示)
$('.popover-birthday').webuiPopover({title:'Numbers:',placement:'bottom',animation:"pop"});
        });

以上代码块。)

我已将此代码基于此帖子:http://xpadro.blogspot.com.br/2014/02/thymeleaf-integration-with-spring-part-2.html虽然我将模型更改为ModelAndView和&#34;片段&#34;只是一个html页面&#34; phoneList.html&#34;

1 个答案:

答案 0 :(得分:0)

我的猜测是,当你在函数中包含$(document).ready()时,{{1>}内的代码只有在文档准备好之前其父函数触发时才会触发。如果在文档准备好后触发$(document).ready()函数,则不会发生任何事情。这可能会导致您看到的零星行为。尝试重写一下javascript:

retrievePhones()