我有一个问题是谁扭曲了我的想法。我在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;
答案 0 :(得分:0)
我的猜测是,当你在函数中包含$(document).ready()
时,{{1>}内的代码只有在文档准备好之前其父函数触发时才会触发。如果在文档准备好后触发$(document).ready()
函数,则不会发生任何事情。这可能会导致您看到的零星行为。尝试重写一下javascript:
retrievePhones()