JQuery синхронизация функций (работает только с предупреждением) - PullRequest
2 голосов
/ 21 июля 2010

Здесь я создаю массив:

var optionTexts = [];
    $('#stripeMeSubSubCat tr').each(function(){
        if ($(this).find('input:checkbox.subsubcat_chkclass:not(:checked)').length == 0)
            {
                subsubrow_cat_id_no = parseInt($(this).closest("tr").attr("id"));               
                optionTexts.push(parseInt(subsubrow_cat_id_no));
            };          
    });

Приведенный ниже код работает только при включенном предупреждении.Я читал, что это может быть связано с проблемой синхронизации.Есть ли решение в отношении кода ниже?Спасибо.

$('#stripeMeSubSubCat tr').each(function(){                                      
        myindex = parseInt($.trim($(this).closest("tr").attr("id")));

        if (jQuery.inArray(myindex, optionTexts) == -1) {
             var equal="FALSE";
        }else{
             var equal="TRUE";
            $("#stripeMeSubSubCat tr[id='" + myindex + "'] input").attr('checked', true);       
        };  

        //alert(equal);
});

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Что вы подразумеваете под «работает только тогда, когда оповещение включено»? Вам необходимо описать разницу в поведении в обоих случаях.

В вашем коде нет асинхронных вызовов, поэтому не должно быть проблем с синхронизацией. Однако вы, кажется, используете целое число в качестве идентификатора элемента DOM. Это не разрешено.

0 голосов
/ 21 июля 2010

Возможно, вам нужно дождаться загрузки DOM. Попробуйте обернуть этот код в:

$(function(){
  // put code here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...