У меня есть функция изменения на элементе select, который запускает запрос и ответ ajax. В какой-то момент он начал работать дважды, но не сам запуск изменения. Просто все внутри функции изменения. Повторить: функция изменения запускается только один раз, но содержимое функции выполняется дважды. Это не происходило две недели назад (последний раз я проверил его), и с тех пор я не изменил какой-либо связанный код. Просто обновился до WordPress 4.5. Вот код (с информацией о журнале консоли в комментариях):Функция scrolltop работает дважды
$('body').on('change', 'select#users_view', function()
{
var view = $(this).val();
console.log('triggered '+view); // this only prints ONCE
$('html, body').animate({scrollTop:0}, 250, function()
{
console.log('scroll top '+view); // this prints TWICE
$.post(application_ajax.ajaxurl,{action:'application_ajax',dataType:'html',class:'views_users_management',method:'switch_view',view:view},function(response)
{
if('status' in response)
{
if(response.status == 'success')
{
console.log('success '+view); // this prints TWICE
$.ReplaceUsersContainer(response.html, false);
}
else if(response.status == 'error') $.showError(response.message);
else $.showError();
}
else $.showError();
});
});
});
Что такое земля? Файл javascript загружается только один раз. Ни один другой файл javascript не ссылается на этот элемент выбора нигде. Функция изменения запускается только один раз, как показывает журнал консоли. Но по какой-то причине функция анимации работает дважды.
EDIT Это только мне пришло в голову, что, может быть, он работает в два раза, так как селектор для функции живого является html, body
, но это никогда не было с JQuery раньше, и если это то, что JQuery делает сейчас, я У меня есть тысячи файлов javascript для изменения.
Посмотреть мой выбор. jQuery никогда не вел себя так раньше, с помощью html, body on animate functions. Новые правила jQuery. Это бесит. –