Почему атрибут элемента отображается с запаздыванием (при 2ой итерации показывается
Есть таблица wpDataTables с фильтром select с выбором по городам.
Хочу в переменной получать название городов для последующего вывода на странице, но сталкиваюсь с невозможностью получить атрибут элемента title в силу того, что плагин при поиске посылает ajax запрос на сервер и возвращает данные и потому не работает DOM (в консоли видно, а в коде страницы нет), хотя сам html код кнопки я отлавливаю таким образом: jQuery.noConflict(); jQuery(window).load(function(){ wpDataTables.table_1.addOnDrawCallback( function(){ var newcity = jQuery('#table_1_1_filter_sections button.dropdown-toggle').attr('title'); var city = jQuery('#table_1_1_filter button.dropdown-toggle')[0]; var title = city.getAttribute("title"); console.log(newcity,city,title); Здесь получаю в консоли только city в таком виде <button type="button" class="btn dropdown-toggle btn-default" data-toggle="dropdown" role="button" title="Кемерово" aria-expanded="false"> <span class="filter-option pull-left">Кемерово</span> <span class="bs-caret"><span class="caret"></span></span> </button> При var city = jQuery('#table_1_1_filter button.dropdown-toggle'); Получаю в консоли a.fn.init [button.btn.dropdown-toggle.btn-default, selector: "#table_1_1_filter button.dropdown-toggle", prevObject: n.fn.init(1), context: document] Но, ничего не могу сделать с этой переменной, методы find, text, html, innerHTML не хотят с ней работать, а при преобразовании в toString() получаю в консоли [object HTMLButtonElement]. Как можно решить? UPD: Вот что удалось обнаружить - код var newcity = jQuery('#table_1_1_filter_sections button.dropdown-toggle').attr('title'); работает, но запаздывает с итерацией, т.е. при первом выборе города считывает пустоту, а при выборе следующего - отображает предыдущее значение и так далее. Какие могут быть мысли? |
Не нашел ничего лучше, как установить задержку на 0,5сек. По крайней мере работает
Не нашел ничего лучше, как установить задержку на 0,5сек. По крайней мере работает setTimeout(function() { city = jQuery('#table_1_1_filter button.dropdown-toggle').attr("title"); jQuery('.city').text("г. "+city); }, 500); |
Часовой пояс GMT +3, время: 08:31. |