带有json的jQueryUI

带有json的jQueryUI,jquery,json,jquery-ui,Jquery,Json,Jquery Ui,我一直在尝试将jquery UI函数添加到从json文件加载的图像中。为什么在加载图像时,工具提示和鼠标悬停不能在我正在创建的img id上工作?此外,我还使用了一个jQueryUI选项卡菜单,用于直接从我的文件夹加载图像到html文件中,并使它们链接到菜单中的不同选项卡。当我从json文件中加载图像时,有没有办法让它工作 $(文档).ready(函数(){ $(document.tooltip(); $(“#单击”).mouseenter(函数(){ $(“此”).stop().animate

我一直在尝试将jquery UI函数添加到从json文件加载的图像中。为什么在加载图像时,工具提示和鼠标悬停不能在我正在创建的img id上工作?此外,我还使用了一个jQueryUI选项卡菜单,用于直接从我的文件夹加载图像到html文件中,并使它们链接到菜单中的不同选项卡。当我从json文件中加载图像时,有没有办法让它工作

$(文档).ready(函数(){
$(document.tooltip();
$(“#单击”).mouseenter(函数(){
$(“此”).stop().animate({
宽度:“220px”,
高度:“170px”
});
});
$().mouseleave(函数(){
$(this).stop().animate({
宽度:“200px”,
高度:“150像素”
});
});
$(“#contentBox”).tabs();
$(“a[href=#click]”。单击(函数(){
$(“#contentBox”)。选项卡(“选项”、“活动”,1);
});
$(“a[href=#recept2]”)。单击(函数(){
$(#contentBox”).tabs(“选项”,“活动”,2);
});
$(“a[href=#recept3]”)。单击(函数(){
$(#contentBox”).tabs(“选项”,“活动”,3);
});
$(“a[href=#recept4]”)。单击(函数(){
$(“#contentBox”)。选项卡(“选项”、“活动”,4);
});
$(“a[href=#recept5]”)。单击(函数(){
$(#contentBox”).tabs(“选项”,“活动”,5);
});
$(“a[href=#recept6]”)。单击(函数(){
$(#contentBox”).tabs(“选项”,“活动”,6);
});
$(“a[href=#recept7]”)。单击(函数(){
$(#contentBox”).tabs(“选项”,“活动”,7);
});
$(“a[href=#recept8]”)。单击(函数(){
$(#contentBox”).tabs(“选项”,“活动”,8);
});
$(“a[href=#recept9]”)。单击(函数(){
$(#contentBox”).tabs(“选项”,“活动”,9);
});
var jsonDoc=“mylist.json”;
$.getJSON(jsonDoc,函数(json){
var imgList=“”;
$.each(json.imgs,function(){
imgList+='';
});
$(“#图片列表”).append(imgList);
});
});

问题在于jQuery方法的执行顺序

默认情况下,
$.getJSON
是异步的,因此您可以使用XHR上的
.done()
添加处理程序,或者使用
getJSON()
的回调方法添加处理程序

如果通过设置
async:false
使用同步API,则在服务器处理HTTP请求以及发送响应所需的时间期间,应用程序将被阻塞。从:

请注意,同步请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作


有关Javascript中异步与同步的信息,请参阅:

,因为在文档创建
$(“#click”)时不存在img元素。当包含在
$(文档)中时,mouseenter
或该元素的任何其他触发器都不起作用。ready
。使您的JSON同步,以便您知道创建元素已经完成,然后添加与元素相关的触发器。

如何使JSON同步?
$.ajaxSetup({“async”:false})
如果您想让它对其他函数保持异步,则可以在
true
中使用相同的函数,以在完成后将其还原回来。我在$document之外运行json后,该函数就开始工作了。