Все еще не добавлен в DOM, но если и активировано предупреждение/подтверждение, получите идентификатор тега

У меня есть этот кусок jquery/javascript, и я не понимаю, почему это происходит, и как я должен его исправить. Тег с идентификатором id = "group_" +num загружается с помощью ajax, поэтому он, кажется, не добавляется в DOM, смешная часть - если я ставлю одно предупреждение в середине, функция работает, без этого предупреждения ничего не происходит, ¿ кто-нибудь может объяснить, что такое предупреждение, и что я должен сделать, чтобы получить этот id в DOM, поэтому jquery может считать длину равной 1? Конечно, если я получаю любой другой id, не загруженный ajax, работает.

$(document).ready(function(){

 $(function() {
 var hash = window.location.hash;
 var num = hash.replace("#subcat_group_","");
 $('[id*="subcat_group_"]').hide();

 // here the "id" loaded with ajax seems still not loaded.
 var len = $("#group_"+num).length;
 //Here variable "len" still 0 

 /***** with this alert works , just an alert anything inside

 alert(num);

 with this alert works *****/ 

 /*******if i use "len" here still 0 even if alert is before *******/
 if( $("#group_"+num).length === 1){


 /******if i get again for id lenght with alert before , then is 1 ******/ 
 if( $("#group_"+num).length === 1){
 var group_name = $("#group_"+num).attr("title");
 swapContentV1(num,group_name);
 }
 $("#subcat_group_"+num).show();
 });

});

Благодарю.

1 ответ

Предупреждение заставляет сценарий ждать... для вашего ответа И для завершения Ajax-вызова. Без предупреждения вы смотрите "слишком рано" - Ajax еще не закончен.

Вы должны поместить свой код в функцию успеха, как предложили в своем комментарии shoogle.

licensed under cc by-sa 3.0 with attribution.