大佬教程收集整理的这篇文章主要介绍了jQuery-函数对JSON导入的数据不起作用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
append()
)生成许多表示数据的HTML列表:
<ol ID=\"iran\">
<li class=\"y1900\"><p>Iran 1900 Revolution flag</p></li>
<li class=\"y1906\"><p>Iran 1906 Dictator flag</p></li>
<li class=\"y1921\"><p>Iran 1921 Revolution flag</p></li>
</ol>
我有一个函数resizeflags()
(仅用于UI)计算每个列表项的宽度并调整大小以将所有内容放入一个屏幕。
resizeflags()
函数在$(document).ready()
期间(在JsON加载之后)被调用,并且可以与我的测试(静态)HTML文件一起正常工作,但是在删除测试HTML并使用JsON数据附加相同的HTML时不起作用-附加列表进入DOM正确,但是调整大小不会发生。
我有一个手动触发resizeflags()
(用于根据新的年份范围进行重新计算),并且在附加数据上可以正常使用。
我觉得我已经忽略了一个明显的问题-我想念的是什么?
编辑:
这是附加数据的代码(我已将resizeflags()
临时移入该函数,通常在之后直接调用它:
function loadFlags() {
$.getJsON(\'data/flags.Json\',function(countrIEsdata){
//for each flag
$.each(countrIEsdata.countrIEs,function(i,countrIEs){
$(\'#countrIEs\').append(\'<li ID=\"\'+countrIEs.country+\'\">\'+countrIEs.country+\'</li>\')
$(\'#flags\').append(\'<ol ID=\"\'+countrIEs.country+\'\"></ol>\')
$.each(countrIEs.years,flagyears){
$(\'#flags #\'+countrIEs.country).append(\'<li class=\"y\'+flagyears.year+\' \'+flagyears.taxonomy+\'\"><p>\'+flagyears.flagname+\'</p></li>\')
});
});
});
//resize from defaults
resizeflags(@R_623_10586@lYears);
}
resizeFlags()
函数之前立即进行JSON调用,响应也可能尚未到达。
确保在正确的时间调用resizeFlags()
的唯一方法是将其放入成功处理程序中,如下所示:
$.getJSON(\'some-url\',function(data) {
//1. do something with the data (like build the list,append elements to the DOM)
//...
//2. call other UI stuff,after the elements created above are inserted in the DOM
resizeFlags();
});
仅当JSON响应的接收速度非常快时(在执行更多代码之前),以下代码才有效:
$.getJSON(...);
//some more code
resizeFlags();
,您正在JSON查询的回调函数外部调用ѭ12。即使在返回JSON数据之前,也可以立即调用此方法。一旦完成每个循环,就将该行放入JSON成功回调中
,您需要在getJSON调用完成后(即在插入函数的末尾)调用resizeFlags。否则,在调整大小时这些元素将不存在
,附加JSON数据后,您将需要调用resizeFlags()函数。
如果resizeFlags()可以在CSS中完成,则无需再次调用resizeFlags()。
以上是大佬教程为你收集整理的jQuery-函数对JSON导入的数据不起作用全部内容,希望文章能够帮你解决jQuery-函数对JSON导入的数据不起作用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。