JavaScript jQuery - Bootstrap MultiSelect Невозможно предотвратить внутреннее прослушивание пассивных событий по мобильнJquery

Программирование на jquery
Ответить
Anonymous
 JavaScript jQuery - Bootstrap MultiSelect Невозможно предотвратить внутреннее прослушивание пассивных событий по мобильн

Сообщение Anonymous »

Я использую Bootstrap multiSelect (https://github.com/davidstutz/bootstrap-multiselect - текущая версия) в форме. На рабочем столе он работает нормально, но на мобильных устройствах или, если я использую эмуляцию устройства Toggle в Firefox или инструмент Chrome Dev, я получаю ошибку: < /p>

Код: Выделить всё

Unable to preventDefault inside passive event listener invocation.
< /code>
и поведение Select не работает, как ожидалось на мобильном телефоне. У меня есть эта ошибка по умолчанию, но также и с моей пользовательской конфигурацией: < /p>
// Multiselect Config
const opts_template = {
button: '[i][/i]',
filter: '[i][/i][i][/i]',
};

// Multiselect Select One Mininum
function multiSelectOneMin(val) {
if(val.multiselect){
var $element = val.multiselect.$select;
} else {
var $element = $(val.element);
}
let $click = val.click ? val.click : '';
if($element.val().length == 0) {
$element.multiselect('select', $click);
}
}

const opts_basic_one_min = {
nonSelectedText: 'Select',
maxHeight: 250,
buttonWidth: '100%',
templates: opts_template,
onChange: function(element, checked) {
multiSelectOneMin({ multiselect: this, element: null, values: this.$select.val(), click: element.val() });
}
};

$('#subjectContact').multiselect(opts_basic_one_min);
Вот живая форма: https://www.qumundo.com/contact/
Как я могу исправить эту ошибку?
Я попробовал деактивировать.

Код: Выделить всё

https://github.com/davidstutz/bootstrap-multiselect/blob/aade5e6f6a55add71c2ba42348cfe72ea51b563b/dist/js/bootstrap-multiselect.js#L795

//event.preventDefault();
< /code>
Но тогда все мобильные попытки работают, но не попытки настольного компьютера. MultiSelect .onchange () работает: < /p>
Desktop: 2 times; Mobile: 3 times
< /code>
Если я активирую его: < /p>
Desktop: 1 time; Mobile: 2 times
< /code>
Я также заметил разницу в селекторе копирования и стилях копирования опции Выбрать: < /p>
Надзор: < /p>
#form-group-subject > span > div > div.multiselect-container.dropdown-menu > button.multiselect-option.dropdown-item.active > span > label
document.querySelector("#form-group-subject > span > div > div.multiselect-container.dropdown-menu > button.multiselect-option.dropdown-item.active > span > label")
< /code>
mobile: < /p>
#form-group-subject > span > div > div > button.multiselect-option.dropdown-item.active > span > label
document.querySelector("#form-group-subject > span > div > div > button.multiselect-option.dropdown-item.active > span > label")
< /code>
Я также попробовал: < /p>
//$('#subjectContact').multiselect(opts_basic_one_min).change(function(e) { e.preventDefault(); });
jquery v3.7.1

Подробнее здесь: https://stackoverflow.com/questions/797 ... ide-passiv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»