сделать что-то, когда элемент js загружен, не работает - PullRequest
0 голосов
/ 31 мая 2018

У меня есть эта функция Jquery для нажатия на элемент, когда он будет готов.это интервал, делающий это, следующая функция:

MonitorAndClick(selector) {
    var ele = $(selector);
    if (ele.length == 0) {
        var intervalid = setInterval(function () {
            var ele = $(selector);

            if (ele.length > 0) {
                ele[0].click();
                clearInterval(intervalid);

                return true;
            }
        }, 500);
    } else {
        ele[0].click();
        return true;
    }
}

проблема в , в некоторых случаях не работает .однако это интервал, и он проверяет готовность элемента каждые 0,5 секунды, так как это возможно?Есть ли другой способ проверить готовность элемента?

дополнительное примечание:

У меня есть гармошка.У меня есть функция, чтобы открыть аккордеон-> открыть один из пунктов-> открыть вкладку в разделе подробностей

это функция:

 //--reach to this point, open accordion index 2--------
 ShowAccordion(2);
 //----open the item with specific Id in accordion items------
 setTimeout(function () {
    var selector = "tr[gacategory = '/myprotection/mywills/item_" + parseInt(willId) + "]";

MonitorAndClick (селектор);}, 500);

смысл в том, что этот элемент ДОЛЖЕН быть там, иногда он загружается недостаточно быстро, и Я ХОЧУ ИМЕТЬ ПУТЬ, ЧТОБЫ ПРОВЕРИТЬ, ЕСЛИ ЕГО ЗАГРУЖЕНО, ТО НАЖМИТЕ НА ЭТО.

Обновлен код после комментариев

var selector = "tr[gacategory = '/myprotection/mywills/item_" + parseInt(willId) + "]";
    $("#selector").ready(function () {
        console.log('**********.... selector is loaded ....*****');
        if (!$("#selector").hasClass('selected')) 
            MonitorAndClick(selector);
    });

все еще не работает.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Возможно, вы захотите попробовать https://api.jquery.com/ready/

Похоже, что функция jquery ready может быть применена и к отдельным элементам

0 голосов
/ 31 мая 2018

Почему вы хотите положиться на задержку 0,5 секунды, чтобы убедиться, что ваш элемент присутствует в DOM.Вы должны вызывать эту функцию только после того, как ваш элемент присутствует в DOM.Если при добавлении этого элемента в DOM возникает другое условие, вызовите эту функцию, как только это условие будет выполнено.

...