После обновления jQuery 3.4.0 до 3.4.1 при событиях blur() или focus() на входе я получаю ошибку Cannot read property 'value' of undefined.

that.container.on('click', '.binary_field', function(){
    $("input:focus").blur();
}

Я думаю, что это может быть причиной этого изменения в исходном коде jquery: javascript jquery events upgrade

4
Unknown123 12 Фев 2020 в 16:30

2 ответа

Лучший ответ

Это известная проблема в jQuery 3.4.1:

https://github.com/jquery/jquery/issues/4417

Используйте JavaScript .blur () вместо метода jQuery.

3
Ezra 12 Фев 2020 в 13:51

Ваш код кажется хорошим, в вашем случае есть обходной путь, удалите jquery для этой строки.

Вы можете заменить

$("input:focus").blur()

По

document.activeElement && document.activeElement.blur() 
// Test if there is a focused element, if yes remove the focus

Или (с jQuery и VanillaJs)

$(document.activeElement)[0].blur()
// or
$("input:focus")[0].blur()

Это то же самое поведение

3
R3tep 21 Фев 2020 в 12:19