![](/img/trans.png)
[英]How to tell JavaScript to execute a function after an element has been loaded?
[英]How do you run a function after an element has been loaded?
在上面的每个循环都运行完之后,我试图运行List_Sandbox函数,但无济于事。 每个循环都选择一组复选框,然后触发更改事件,该事件将渲染需要选中的其他复选框。 List_Sandbox函数正在执行选择,但是它们在我的脚本可以加载其他新复选框之前正在运行。 我怎么看透呢? 我已经尝试过.load,.on和livequery,但都无法正常工作。 请帮忙...
$.each(zone_array, function(index, zone){
$("ul.zones li input[id='"+zone+"']").attr("checked", "checked").trigger("change");
});
List_Sandbox.select_districts_versions(district_array);
List_Sandbox.select_stores_versions(store_array);
function data_for_districts(zoneid) {
$.getJSON('/CampaignMgmt/GetDistrictsByZone', {'clientid': clientid, 'zone': zoneid }, function(data){
$.each(data, function(index, value){
$("span.notice_district").remove();
var zone = value.toString().substring(0, 1);
var li_tag = '<li zone="'+zoneid+'" class="'+ value +'"style="display: list-item; "><label><input id="'+value+'" data-id="'+value+'" data-parent-id="'+zone+'" type="checkbox" name="zone_101" value="' + value + '"><span>'+ value +'</span></label></li>';
$("ul.districts").append(li_tag);
$('ul.districts li input[id="'+value+'"]').change(function(){
Districts.selection(value);
Districts.count_districts();
});
});
});
}
还不清楚添加复选框的代码在做什么,但是您可以尝试以下操作:
var arr_length = zone_array.length;
$.each(zone_array, function(index, zone) {
$("ul.zones li input[id='" + zone + "']").attr("checked", "checked").trigger("change");
/* run the List_Sandbox functions after last item */
if (index == arr_length - 1) {
List_Sandbox.select_districts_versions(district_array);
List_Sandbox.select_stores_versions(store_array);
}
});
编辑:如果使用jQuery> = 1.6,则应使用prop()
方法而不是attr()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.